私は、HTMLコードを読み込み、HTMLを解析し、内容(人が読めるテキスト)を取得してXMLファイルに保存するJavaプログラムを開発しています。場合によっては、HTMLコードには'
,"
文字などが含まれていますが、それぞれ'
とと書かれていることもあります。Java XML APIは"から&に変換されます。
適切な手順に従ってXMLを構築します。 Document
クラスとElement
クラスを使用し、Transformer
,DomSource
、StreamResult
クラスを使用してXMLファイルを作成します。
ファイルを保存すると、シンボルが&
に置き換えられていることがわかりました。私はそれが正しいことを知っています。しかし、'
は&&apos
にも変換されます。
また、Document
オブジェクトをString
オブジェクトに変換してから、その文字列をStringEscapeUtils.unescapeXml(String s)
メソッドに渡して、XMLエンティティをそのままにしました。ただし、&
エンティティを&
に変換しないため、無効なXMLファイルが作成されます。
(私はOutputKeys.ENCODING
は "UTF-8" と "XML" にOutputKeys.METHOD
に設定されています。)
6つの文字「&a p o s;」を含む文字列をDOM文書のテキストノードに書き込んで、テキストノードが '&a m p; a p o s;テキストノードには、エスケープされていないテキスト(つまり、単一の文字 '' ')が含まれている必要があり、シリアライザはエスケープするかどうかを決定します。 –