这是我的代码段:
public EpsXmlParser(String xmlAnswer) {
DOMParser parser = new DOMParser();
try {
InputSource is = new InputSource();
is.setCharacterStream(new StringReader(xmlAnswer));
parser.parse(is);
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
Document doc = parser.getDocument();
parseXmlDoc(doc.getDocumentElement());
}
在此代码块中,字符串xmlAnswer实际上是使用Web服务客户端程序从另一台计算机获取的UTF-8编码xml。 我在调试时意识到这里的问题是在实现parser.getDocument()方法后,文档doc为null。 我无法解决问题。请帮帮我,我该怎么办?
我不能得到任何例外。代码运行得很好,但Document doc就是这样(看下面的快照)。我无法理解问题是什么。任何帮助将不胜感激。
我使用了这样的XML。这是XML格式标准吗?如果它是标准的,那么在使用预定义的xml解析代码时我怎么能得到任何异常。
<?xml version="1.0" encoding="UTF-8"?>
<extra_result><status>00</status><data><transaction_id>3c704f15-7c09-4bba-9046- ffbdb8c97b51</transaction_id><card_status>11</card_status><status_msg>Kart numarası yanlış. </status_msg><card_no>48422</card_no><name_surname></name_surname><gsm></gsm><bonus></bonus></data></extra_result>
答案 0 :(得分:0)
我通过提供示例XML字符串文档设法运行代码没有问题。
它表明问题最有可能是 xmlAnswer 参数中给出的XML字符串本身。
为了查看问题的确切位置,请尝试更改代码并运行以下命令:
public EpsXmlParser(String xmlAnswer) {
DOMParser parser = new DOMParser();
try {
InputSource is = new InputSource();
is.setCharacterStream(new StringReader(xmlAnswer));
parser.parse(is);
} catch (Exception e) {
throw new RuntimeException("Error on parsing document", e);
}
Document doc = parser.getDocument();
parseXmlDoc(doc.getDocumentElement());
}
我预计会因为解析错误的实际原因而抛出异常。