在XML外部实体DocumentBuilder.parse(“文件”)过程中发生空指针异常;
-
11-09-2019 - |
题
我试图解析使用DOM解析器一个XML文档。
我在执行文档= builder.parse(xmlDataFile)得到空指针异常;
有分别在XML数据文件数的实体。在去除特定实体, 我能成功地解析该文件
在实体是一些这样的事
<!ENTITY SAMPLE.TIF SYSTEM "SAMPLE.TIF" NDATA TIF>
这可能是什么原因?
修改强>
下面是代码:
DocumentBuilderFactory aFactory = DocumentBuilderFactory.newInstance();
aFactory.setValidating(false);
aFactory.setFeature("http://xml.org/sax/features/namespaces", false);
aFactory.setFeature("http://apache.org/xml/features/validation/schema", false);
aFactory.setIgnoringComments(true);
builder = aFactory.newDocumentBuilder();
doc = builder.parse(xmlDataFile);
这是迹线:
at com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl.setChunkIndex(DeferredDocumentImpl.java:1944)
at com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl.appendChild(DeferredDocumentImpl.java:644)
at com.sun.org.apache.xerces.internal.parsers.AbstractDOMParser.characters(AbstractDOMParser.java:1191)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.characters(XMLDTDValidator.java:862)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:463)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:225)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:283)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:180)
at XMLParser.Parse(XMLParser.java:89)
at Main.main(Main.java:116)
<强> 89行编号指向 - >文档= builder.parse(xmlDataFile); 强>
解决方案
解。但对于错误的原因确实是未知的解决方案从来没有规定什么地方出了错。 :(
其他提示
这是固定的2.9.1版本中的Xerces的错误
不隶属于 StackOverflow