[英]I am getting exception in XSLT saxon parser
我为 saxen 解析器添加了一个 maven 依赖项,然后将 xml 和 xsl 作为字符串参数发送到 saxonTransform(String xml, String xsl)。 但得到一些例外。
<!-- https://mvnrepository.com/artifact/net.sf.saxon/Saxon-HE -->
<dependency>
<groupId>net.sf.saxon</groupId>
<artifactId>Saxon-HE</artifactId>
<version>10.6</version>
</dependency>
撒克逊变压器(XSLT)代码:
public static String saxonTransform(String xml, String xsl) throws TransformerException, FileNotFoundException {
String result = "";
System.setProperty("javax.xml.parsers.SAXParserFactory", "org.apache.xerces.jaxp.SAXParserFactoryImpl");
System.setProperty("javax.xml.transform.TransformerFactory", "net.sf.saxon.TransformerFactoryImpl");
StringWriter out = new StringWriter();
TransformerFactory tFactory = TransformerFactory.newInstance();
tFactory.setAttribute(FeatureKeys.DTD_VALIDATION, false);
StreamSource xmlSource = new StreamSource(new StringReader(xml));
StreamSource xslSource = new StreamSource(new StringReader(xsl));
StreamResult xmlResult = new StreamResult(out);
Transformer transformer = tFactory.newTransformer(xslSource);
transformer.transform(xmlSource, xmlResult);
result = out.toString();
return result;
}
但是,给定的行无法转换 xml:
Transformer transformer = tFactory.newTransformer(xslSource);
给出如下错误:
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception
[Handler dispatch failed; nested exception is javax.xml.parsers.FactoryConfigurationError:
Provider org.apache.xerces.jaxp.SAXParserFactoryImpl not found] with root cause
在这一行
System.setProperty("javax.xml.parsers.SAXParserFactory",
"org.apache.xerces.jaxp.SAXParserFactoryImpl");
你是说你想使用 Apache Xerces 作为你的 XML 解析器,但看起来它在类路径上不可用。
(请注意,对于如今的大多数用途,使用 JDK 中内置的 Xerces 版本效果非常好。曾经有一段时间 JDK 版本有一些令人讨厌的错误,但这似乎已经在不久前修复了。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.