0

—および&#8217数値文字参照を含むxmlを解析しようとしています。解析すると、「?」として出力されます。これら2つだけでなく、xml内のHTML/XMl数字参照によってこの問題が発生します。事前定義されたエンティティのみがsaxparserによって受け入れられます

defaulthandlersaxparserを使用します。system out in characterメソッドは、数値文字参照の疑問符を表示します。

私はたくさんのグーグルをしました、どこでも私は数字の文字参照の使用が問題を引き起こさないはずであるとわかります。

何か助けはありますか?

4

1 に答える 1

0

System.outin character メソッドは、数字参照の疑問符を表示します。

これは、出力/コンソールの文字エンコードの問題のようです。以下はJSE 7で動作します

public static void main(String[] args) throws Exception{ SAXParser パーサー = SAXParserFactory.newInstance().newSAXParser();

    XMLReader reader = parser.getXMLReader();
    reader.setContentHandler(new ContentHandler() {

        // other methods omitted 

        @Override
        public void characters(char[] ch, int start, int length)
                throws SAXException {
            System.out.println(new String(ch, start, length));

        }
    });

    FileReader fReader = new FileReader("/tmp/HelloWorld.xml");
    reader.parse(new InputSource(fReader));
    fReader.close();
}

XML ファイルの場合:

<?xml version="1.0" encoding="UTF-8"?>
<Test>
Hello World&#8217;
</Test>

出力: Hello World'</p>

デバッガーを使用して着信文字配列を確認しようとしましたか?

于 2012-05-17T04:32:31.140 に答える