XML形式のファイルがあります(ルートの開始タグと終了タグ、およびルートの子のみで構成されています)。子のテキスト要素には、アンパサンド記号 & が含まれています。XML では、ドキュメントを有効にするためにこの記号を使用することは許可されていません。Java の DOM API と XML パーサーを使用してファイルを処理しようとすると、解析エラーが発生しました。そのため、 & を に置き換え&
、ファイルを正常に処理しました。さまざまなプレーン テキスト ファイルのテキスト要素の値を抽出する必要がありました。
これらの新しく作成されたテキスト ファイルを開くと&
、 が表示されるはずでしたが、代わりに & が表示されていました。どうしてこれなの?テキストを拡張子なしのテキスト ファイルに保存しました (XML 形式の元のファイルにも .xml 拡張子がありませんでした)。ファイルをどのように開いても、新しいファイルのテキストには & だけがあります。 txt または xml ファイルとして (これらは、XML エディターのオプションの一部です)。正確にはどうなりますか?Java (?)&
は & に自動的に変換されますか? または、デフォルトのエンコーディングがありますか?&の&
略で、「目に見えない」自動変換があると思いますが、これがいつ、どのように発生するのか混乱しています。元のファイルと、元のファイルを Java で処理した後に受け取った抽出ファイルの例を次に示します。
これは、XML 形式の「negative.review」ファイルです。
<review>
<review_text>
I will not wear it as it is too big & looks funny on me.
</review_text>
</review>
これは、抽出したファイル「negative_1」です。
I will not wear it as it is too big & looks funny on me.
私にとっては、元のデータをそのまま (変換/置換を行わずに) 保持することが重要なので、抽出したファイル "negative_1" を処理し&
て & に戻す必要があると考えました。ご覧のとおり、これを行う必要はないようです。しかし、理由がわかりません:(。
前もって感謝します!