4

XMLを解析しようとすると、次のエラーが発生します。問題は何でしょうか。

I / System.out(8058):間違ったXMLファイル構造:予期しないトークン(java.io.StringReader@4113db88のposition: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>
4

2 に答える 2

1

疑問符が気に入らないようです。XMLファイルを正しいエンコーディングで保存していることを確認できますか?(UTF-8)

于 2012-07-05T09:34:06.293 に答える
1

Java文字列はデフォルトでUTF-16エンコーディングになっています。文字列を使用してドキュメントを作成するには、次のことを試してください。

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