0

ExamXML.compareXMLString(s1, s2) 行中的异常;

片段代码是

static public void main(String[] argv) throws IOException {

    String s1 = readFile("src/main/resources/file1.xml");
    String s2 = readFile("src/main/resources/file2.xml");

    String s = ExamXML.compareXMLString(s1, s2);
    System.out.println(s);

}

运行结果是:

java.lang.ClassCastException: org.apache.xerces.parsers.AbstractSAXParser$LocatorProxy cannot be cast to org.xml.sax.ext.Locator2
    at com.a7soft.examxml.ExamXMLHandler.setDocumentLocator(ExamXMLHandler.java:215)
    at org.apache.xerces.parsers.AbstractSAXParser.startDocument(Unknown Source)
    at org.apache.xerces.impl.xs.XMLSchemaValidator.startDocument(Unknown Source)
    at org.apache.xerces.impl.dtd.XMLDTDValidator.startDocument(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentScannerImpl.startEntity(Unknown Source)
    at org.apache.xerces.impl.XMLVersionDetector.startDocumentParsing(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at com.a7soft.examxml.ExamXMLHandler.loadXML(ExamXMLHandler.java:111)
    at com.a7soft.examxml.ExamXML.loadXML(ExamXML.java:246)
    at com.a7soft.examxml.ExamXML.parseXMLTags(ExamXML.java:262)
    at com.a7soft.examxml.ExamXML.compareXMLString(ExamXML.java:281)
    at com.happyelements.odin.monster.Main.main(Main.java:55)

null

我怎样才能解决这个问题?

4

1 回答 1

4

我有这个问题的解决方案。

System.setProperty("javax.xml.parsers.SAXParserFactory",
        "com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl");

谢谢!

于 2012-04-06T10:22:09.513 回答