8

我有一些代码,例如:

XMLInputFactory xif = XMLInputFactory.newInstance()
TransformerFactory tf = TransformerFactory.newInstance("org.apache.xalan.processor.TransformerFactoryImpl", null)

Transformer t = tf.newTransformer()
DOMResult result = new DOMResult()
t.transform(new StAXSource(reader), result)

这会产生以下错误:

捕获:javax.xml.transform.TransformerException:无法转换 javax.xml.transform.stax.StAXSource 类型的源

阅读器对象的类型com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl

4

2 回答 2

6

所以我愚蠢地尝试了错误的事情。这修复了它:

System.setProperty("javax.xml.transform.TransformerFactory",
"com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl");
于 2013-06-03T20:39:45.167 回答
0

我偶然发现Xml Transformer 在尝试将 StaxSource 转换为 StreamResult 时给我一个错误,同时希望解决与您相同的问题。

那里提供的答案似乎对我来说很好,即使用:

TransformerFactory.newDefaultInstance();

代替:

 XMLInputFactory.newInstance()
于 2022-02-17T10:03:01.160 回答