通过StAX XmlEventReader读取DOM

时间:2015-03-13 13:57:57

标签: xml xml-parsing stax jaxp

我有一种情况,我交给DOM文档,我需要通过一个使用StAX作为JAXB绑定的一部分的过程来提供。所以我尝试了自然的东西并尝试将Document包装为javax.xml.transform.dom.DOMSource并将其传递给javax.xml.stream.XMLInputFactory #createXMLEventReader(javax.xml.transform.Source):

final Document document = ...;
final DOMSource source = new DOMSource( document );
final XMLInputFactory staxFactory = XMLInputFactory.newInstance();
staxFactory.setXMLResolver( LocalXmlResourceResolver.INSTANCE );
final XMLEventReader staxReader = staxFactory().createXMLEventReader( source );
...

使用JDK内置的StAX处理导致错误,因为显然读取DOMSources是完全未实现的。

然后我尝试在Woodstox中交换StAX实现,这也导致错误(com.sun.xml.internal.bind.v2.runtime.unmarshaller.StAXConnector $ 1.getPublicId中的NPE。)

有没有人成功完成这项工作?有没有办法将DOM文档提供给StAX事件阅读器?

FWIW,生成文档。没有真正的XML文档支持它。所以我不能只提供XML。

0 个答案:

没有答案