使用DOMParser进行XML解析时出错

时间:2014-02-08 17:02:36

标签: java xml domparser

这是我的代码段:

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就是这样(看下面的快照)。我无法理解问题是什么。任何帮助将不胜感激。

enter image description here


我使用了这样的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>

1 个答案:

答案 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());

 }

我预计会因为解析错误的实际原因而抛出异常。