android 4.0.3解析XML:意外的令牌(位置:TEXT @ 1:2

时间:2012-07-05 09:28:34

标签: android xml-parsing

我尝试解析XML并得到以下错误,问题是什么?

  

I / System.out(8058):错误的XML文件结构:意外的令牌   (位置:java.io.StringReader@4113db88中的TEXT @ 1:2)

这是我用

解析的方法
public final static Document XMLfromString(String xml){

    Document doc = null;

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    try {

        DocumentBuilder db = dbf.newDocumentBuilder();

        InputSource is = new InputSource();
        is.setCharacterStream(new StringReader(xml));
        doc = db.parse(is); 

    } catch (ParserConfigurationException e) {
        System.out.println("XML parse error: " + e.getMessage());
        return null;
    } catch (SAXException e) {
        System.out.println("Wrong XML file structure: " + e.getMessage());
        return null;
    } catch (IOException e) {
        System.out.println("I/O exeption: " + e.getMessage());
        return null;
    }

    return doc;

}

那就是我尝试解析的XML:

<?xml version="1.0" encoding="UTF-8"?>
<app>
    <Date Value="02.07.2012">
     </Date>
</app>

2 个答案:

答案 0 :(得分:1)

默认情况下,您的java字符串采用UTF-16编码。要使用字符串创建Document,请尝试以下方法:

Document doc = db.parse(new ByteArrayInputStream(xmlData.getBytes())); 

答案 1 :(得分:0)

这似乎不喜欢问号。您能确保使用正确的编码保存 XML文件吗? (UTF-8)