如何在 Apache 的 AXIOM 中忽略 DTD 解析
How to ignore DTD parsing in Apache's AXIOM
在我的 xml 文档中,存在文档类型。使用 Apache Axiom 解析 xml 文档时,它抛出以下错误消息 "org.apache.axiom.om.OMException: Cannot create OMDocType because the XMLStreamReader doesn't support the DTDReader extension".
XMLStreamReader parser = null;
try {
StAXParserConfiguration standalone = StAXParserConfiguration.STANDALONE;
parser= StAXUtils.createXMLStreamReader(standalone, in);
// parser = XMLInputFactory.newInstance().createXMLStreamReader(in);
}
catch (XMLStreamException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (FactoryConfigurationError e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
StAXOMBuilder builder=new StAXOMBuilder(parser);
OMElement rootOMElement = builder.getDocumentElement();
这将在 Axiom 1.2.16 中修复(参见 AXIOM-475)。同时,您可以通过使用 Woodstox(4.0 或更高版本)作为 StAX 实现来解决此问题。
在我的 xml 文档中,存在文档类型。使用 Apache Axiom 解析 xml 文档时,它抛出以下错误消息 "org.apache.axiom.om.OMException: Cannot create OMDocType because the XMLStreamReader doesn't support the DTDReader extension".
XMLStreamReader parser = null;
try {
StAXParserConfiguration standalone = StAXParserConfiguration.STANDALONE;
parser= StAXUtils.createXMLStreamReader(standalone, in);
// parser = XMLInputFactory.newInstance().createXMLStreamReader(in);
}
catch (XMLStreamException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (FactoryConfigurationError e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
StAXOMBuilder builder=new StAXOMBuilder(parser);
OMElement rootOMElement = builder.getDocumentElement();
这将在 Axiom 1.2.16 中修复(参见 AXIOM-475)。同时,您可以通过使用 Woodstox(4.0 或更高版本)作为 StAX 实现来解决此问题。