1
xmlファイルをsaxで解析する際に問題が発生しました。Javaはxmlファイルを解析するためにsaxを使用します。立ち上げ時に正しい内容を取得できない&
boolean rcontent = false;
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
if (qName.equalsIgnoreCase("content")) {
rcontent = true;
}
}
@Override
public void characters(char ch[], int start, int length) throws SAXException {
if (rcontent){
System.out.println("content: " + new String(ch, start, length));
rcontent = false;
}
}
このような
XMLファイルの内容::ここでのコードの一部
しかし、出力は次のようになります。
私は
を言いたいですこれは完全ではありません。
乾杯!それは非常にうまくいく!しかし、なぜ文字(...)が1つのタグに対して複数回呼び出されているのですか?それは&またはそれが最大のサイズを満たしているからですか? –
[javadocs](https://docs.oracle.com/javase/7/docs/api/org/xml/sax/helpers/DefaultHandler.html#characters(char []、%20int、%20int)を参照してください)文字データが「チャンク」されていることを示す。通常は、大量の文字配列をメモリに不必要に置かないようにするために行われます。私は異なったサックスパーサーが文字を別々にチャンクすることを選ぶことができたと推測しているので、チャンクの実装に頼るべきではありません。 –