-3
javaでsaxパーサーを使用してXMLファイルを解析しています。しかし、パーサーが&を検出すると、現在の行はさらに解析されず、次の要素の解析に移ります。java saxパーサーで&のエスケープ方法を完全に解析する方法
私はStringEscapeUtils.escapeHtml(String)を試しましたが、動作しませんでした。
ありがとうございます。
javaでsaxパーサーを使用してXMLファイルを解析しています。しかし、パーサーが&を検出すると、現在の行はさらに解析されず、次の要素の解析に移ります。java saxパーサーで&のエスケープ方法を完全に解析する方法
私はStringEscapeUtils.escapeHtml(String)を試しましたが、動作しませんでした。
ありがとうございます。
SAXParserは、&
に遭遇したときにテキスト要素を1つ以上の別々の塊に分割します。
これは私がそれを行う方法です。startElementコールバックで現在の要素名を読み取り、どこかに格納し、チャンクを連結します。
@Override public void characters(char[] ch, int start, int length) throws SAXException {
super.characters(ch, start, length);
String value = new String(ch, start, length);
String oldval = cachedProps.get(elemName);
if (oldval!=null) value = oldval+value;
cachedProps.put(elemName, value);
}
StAXParserを調べて、XMLファイルをストリームとして読み取ることができます。これは、通常、自分のアプリケーションにより適しており、制御可能です。 SAXコールバックインターフェイスは、たまに難しいケースです。
ないもの "を検出&"平均? – immibis
[mcve]を表示してください - 質問は現時点ではあまりにも不明です。 –