如何解决javax.xml.transform.TransformerConfiguration异常
我正在尝试使用xsl样式表将xml文件转换为html。 请参阅下面的代码。我已经尝试了很多方法来解决这个问题,但不知怎么的,还是做不到。 如果我打开xml文件,那么我可以看到所需的输出,但是为什么我不能通过编程看到相同的输出呢 错误消息: 错误:“Jaxpone.xsl” 致命错误:“无法编译样式表” javax.xml.transform.TransformerConfiguration异常:无法编译样式表 位于com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:885) 位于com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:671) 位于crawler.JAXPExamples.basic(JAXPExamples.java:52) 位于crawler.JAXPExamples.main(JAXPExamples.java:40) 包装履带如何解决javax.xml.transform.TransformerConfiguration异常,java,xml,xslt,Java,Xml,Xslt,我正在尝试使用xsl样式表将xml文件转换为html。 请参阅下面的代码。我已经尝试了很多方法来解决这个问题,但不知怎么的,还是做不到。 如果我打开xml文件,那么我可以看到所需的输出,但是为什么我不能通过编程看到相同的输出呢 错误消息: 错误:“Jaxpone.xsl” 致命错误:“无法编译样式表” javax.xml.transform.TransformerConfiguration异常:无法编译样式表 位于com.sun.org.apache.xalan.internal.xsltc.t
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URL;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import org.xml.sax.SAXException;
public class JAXPExamples {
public static void main(String argv[])
throws TransformerException, TransformerConfigurationException,
IOException, SAXException, ParserConfigurationException,
FileNotFoundException
{
try {
URL xmlURL = new URL("file://Jaxpone.xml");
String xmlID = xmlURL.toString();
URL xslURL = new URL("file://Jaxpone.xsl");
String xslID = xslURL.toString();
//
System.out.println("--- basic ---");
basic(xmlID, xslID);
System.out.println();
} catch(Exception err) {
err.printStackTrace();
}
}
public static void basic(String xmlID, String xslID)
throws TransformerException, TransformerConfigurationException
{
TransformerFactory tfactory = TransformerFactory.newInstance();
Transformer transformer = tfactory.newTransformer(new StreamSource(xslID));
StreamSource source = new StreamSource(xmlID);
transformer.transform(source, new StreamResult(System.out));
}
}
XSLT文件代码
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="title">
<h2><b><xsl:value-of select="."/></b></h2><br />
</xsl:template>
<xsl:template match="pub_date">
<h5><xsl:value-of select="."/></h5><br />
</xsl:template>
<xsl:template match="section">
<p><b><xsl:value-of select="."/></b></p><br />
</xsl:template>
<xsl:template match="author">
<p><b><xsl:value-of select="."/></b></p><br />
</xsl:template>
<xsl:template match="link">
<p><xsl:value-of select="."/></p><br />
</xsl:template>
<xsl:template match="description">
<p><xsl:value-of select="."/></p><br />
</xsl:template>
<xsl:template match="body">
<p><xsl:value-of select="."/></p><br />
</xsl:template>
<xsl:template match="/">
<html>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
TransformerConfiguration异常通常意味着样式表中存在错误。实际错误将被通知给ErrorListener。您没有提供ErrorListener,因此他们将转到默认的ErrorListener,这可能会将消息写入控制台或某个日志文件
尝试从命令行或IDE直接运行样式表,直到您知道代码正确为止。异常是否没有给出任何详细的错误消息,确切地告诉您失败的原因?哪条语句给出了异常?给出详细的异常以及xslt文件示例code@Martin我提供了错误信息message@PrabhakerXSLT代码已上载…编译时,我收到以下错误XML解析错误:标记不匹配。应为:。地点:file:///home/priya/result.xml 第89行第3列:我认为您的XML文件格式不正确(即格式正确的XML文件应具有正确的结束标记)。请确保XML文件格式正确,然后重试。
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="title">
<h2><b><xsl:value-of select="."/></b></h2><br />
</xsl:template>
<xsl:template match="pub_date">
<h5><xsl:value-of select="."/></h5><br />
</xsl:template>
<xsl:template match="section">
<p><b><xsl:value-of select="."/></b></p><br />
</xsl:template>
<xsl:template match="author">
<p><b><xsl:value-of select="."/></b></p><br />
</xsl:template>
<xsl:template match="link">
<p><xsl:value-of select="."/></p><br />
</xsl:template>
<xsl:template match="description">
<p><xsl:value-of select="."/></p><br />
</xsl:template>
<xsl:template match="body">
<p><xsl:value-of select="."/></p><br />
</xsl:template>
<xsl:template match="/">
<html>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>