解析错误 - 将xml字符串转换为文档时

时间:2014-06-30 11:09:20

标签: parsing

一直在打破我的想法。虽然很简单但是还没弄清楚原因。非常感谢任何帮助。

这是我的XML文件

    <?xml version="1.0" encoding="UTF-8"?>
    <User mode="Retrieve" simCardNumber=“9602875089237652" softwareVersion=“9" phoneManufacturer=“Nokia" phoneModel="I747" deviceId=“562372389498734" networkOperator=“Blu">
     <Errors>
      <Error number="404"/>
    </Errors>
    </User>

    private static Document convertStringToDocument(String xmlStr) {    
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
        try 
        { 
            DocumentBuilder builder =factory.newDocumentBuilder(); 
          //The below statement fails and jumps to return null                
         //Document doc = builder.parse( new InputSource(new StringReader(xmlStr))); 
         //Adding replace method on the string to handle the strange looking double quote on the xml string. However I still get the same error.
         Document doc = builder.parse( new InputSource(new StringReader(xmlStr.replace("“", "\'\""))));
            return doc;
        } catch (Exception e) { 
            e.printStackTrace(); 
        }
        return null;
    }

3 个答案:

答案 0 :(得分:0)

检查报价..

networkOperator=“Blu"

答案 1 :(得分:0)

不知道它是不是粘贴错误,但您使用的是“而不是&#34;在你的代码中。第一个如果经常在富文本编辑器中用作起始引用,则需要手动更改它以使其可解析。

答案 2 :(得分:0)

好的,这个解决方案有效。感谢大家的时间和支持。

      Document doc = null;
        try 
        { 
            DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
            InputSource is = new InputSource();
            is.setCharacterStream(new StringReader(xmlStr));
            doc = db.parse(is);

        } catch (Exception e) { 
            e.printStackTrace(); 
        }

        return doc;