0

有効な xml に変換する必要がある rss フィードから CDATA セクションを含む要素を読み取りました。CDATA セクションのコンテンツはほとんど有効な xhtml ですが、アンパサンドなどの文字が属性 (url) に表示されることがあります。

を使用.replaceAll("&", "&")してこれを解決できますが、少し前向きに考えると、他の無効な文字が属性またはテキストに表示される可能性があります。

要素をインポートしている CMS は、コンテンツの別の構成を設定しないと CDATA セクションを受け入れないので、私の質問は次のとおりです: 属性とテキストに対してのみ、文字列をエスケープする簡単な方法はありますか?

インポート後にxmlを操作するためにjdomライブラリを使用しています。

編集: Apache の StringEscapeUtils をチェックアウトしましたが、これは文字列全体をエスケープしています。要素内の属性値とテキストのみをエスケープするものが必要です。

4

2 に答える 2

2

Apache Commons は、このための便利な関数を提供します: StringEscapeUtils

于 2012-09-05T10:41:22.853 に答える
0

JDOMを使用すると、JDOMを必要とするコンテンツを自動的に正しくエスケープします。CMSにJDOMの出力がロードされていますか、それとも他のライブラリを使用してCMSにデータを入力していますか?

本質的に、有効なXML入力があり、JDOM(org.jdom2.output。*からのもの)を使用してデータを出力する場合、常に良好な出力が得られます。出力?

ロルフ

于 2012-09-05T10:59:42.603 に答える