sax パーサーを使用して XML ファイルを解析しています。<info>
正常に動作しますが、文字列に保存したい HTML が含まれているため、タグのコンテンツを解析したくありません。これを行う方法はありますか?
ありがとう
質問ですが。最善の方法は、ストリームを前処理して、<info>
と</info>
自分の間の部分をエスケープすることです。たとえば、SAX パーサーが有効な XML のみを取得するように、入力をオンザフライで変換する入力ストリームのラッパーを作成できます。
XML が非常に大きいですか。そうでない場合 - すべてを文字列にロードしてから、XPath クエリを使用して対象のノードにアクセスできます
これは疑似コードです。適応してからご使用ください。自己責任。
これは、外側の info タグ内にネストされた <info> タグを処理しません。
init:
ignore = false;
startElement:
if (!ignore) {
if (element.name == "info") {
ignore = true;
} else {
process normally
}
}
endElement:
if (ignore) {
if (element.name == "info") {
ignore = false;
}
} else {
process normally
}