4

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

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

这就是我解析的方法

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>
4

2 回答 2

1

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

Document doc = db.parse(new ByteArrayInputStream(xmlData.getBytes())); 
于 2012-10-11T06:58:58.480 回答
1

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

于 2012-07-05T09:34:06.293 回答