まったく同じ問題について質問して申し訳ありませんが、今私はしたいと思います:
次のようなタグを含む dom4j ドキュメントを作成します。
<Field>\r\n some text</Field>
xml ファイルに変換しますが、\r\n
エスケープする必要があります
org.dom4j.Document.asXml()
動作しません。
それがテキスト ノード内の CRLF シーケンス (単なるリテラル バックスラッシュ-r-バックスラッシュ-n ではない) であると仮定すると、XML シリアライザーにそれらを として書き込むよう説得すること
はできません。に。ドキュメントは、エスケープするかどうかに関係なく、XML 用語で完全に同等です。
属性値の CRLF シーケンスをそのままエスケープする必要がある唯一の場所。
本当にこの出力を生成する必要がある場合は、制御コードをエスケープするための特別な規則に従った独自の XML シリアライザーを作成する必要があります。ただし、外部ツールが CRLF シーケンスを含む XML 要素を読み取ることができないためにこれを行っている場合は、そのツールの修正に専念する必要があります。テキスト コンテンツの改行を処理できない場合、そのツールは破損しており、適切な XML パーサーではないためです。 .
ツリーをたどって、String.replace を Text ノードに適用します。