我尝试解析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>
答案 0 :(得分:1)
默认情况下,您的java字符串采用UTF-16编码。要使用字符串创建Document,请尝试以下方法:
Document doc = db.parse(new ByteArrayInputStream(xmlData.getBytes()));
答案 1 :(得分:0)
这似乎不喜欢问号。您能确保使用正确的编码保存 XML文件吗? (UTF-8)