我想解析具有以下元素的xml文件:
<element>&</element>
<element>&</element>
但是SAX Parser在解析过程中给了我以下异常:
org.xml.sax.SAXParseException: The reference to entity "amp" must end with the ';' delimiter.
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:249)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:208)
是否有任何已知的解决方法?
抛出异常的java代码是:
DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(file);
答案 0 :(得分:1)
我无法使用您显示的XML(在编辑之前)重现这一点。简短但完整的计划:
import java.io.*;
import javax.xml.parsers.DocumentBuilderFactory;
public class Test {
public static void main(String[] args) throws Exception {
File file = new File("test.xml");
DocumentBuilderFactory.newInstance()
.newDocumentBuilder()
.parse(file);
}
}
文件为:
<element>&</element>
...它运行时没有错误。
当文件只是:
<element>&</element>
...它显示您报告的相同异常。
我的结论是它是正确的,并且您的文件 已损坏。在文件中查找&
的每一个匹配项,找到缺少分号的位置。