【发布时间】:2014-02-08 17:02:35
【问题描述】:
这是我的代码 sn-p:
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());
}
在这个代码块中,String xmlAnswer 实际上是一个 UTF-8 编码的 xml,它取自另一台使用 Web 服务客户端程序的机器。 我在调试时意识到这里的问题是在 parser.getDocument() 方法实现之后 Document doc 为空。 我无法解决问题。请帮帮我我该怎么办?
我没有任何例外。代码运行得很好,但 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>
【问题讨论】:
-
您还没有告诉您遇到了什么错误 - 您的异常处理很可能是这里的原因。如果解析部分失败,你为什么要继续?由于
doc为空,在您可能看到的 NullPointerException 之前是否显示了另一个异常? -
我在 catch 块中获取或捕获也不例外。 XML 格式是标准的,但我无法使用预定义的代码对其进行解析。这里的问题实际上是我无法获得异常但 Document 仍然为空。这怎么可能?
-
对我来说这听起来不太可能。如果您可以提供一个简短但完整的示例,这将有所帮助 - XML(尽可能简短地给出一个完整的示例)和一个完整的 program。
-
同意。如果您没有收到错误,则文档可能被正确解析,而您只是没有正确使用结果。但是,如果不了解更多实际失败的原因,我们将无法帮助您。