私のPerlプログラムはXMLファイルを処理しています。一部のエントリには&記号が含まれている場合があります。そして、パーサーが壊れて、「エンティティの名前が無効です」と言います。
ファイルを処理し、すべての誤ったエンティティで&-sをエンコードするにはどうすればよいですか?
したがって、次のようになります。
<words>text1 & text2</words> --> <words>text1 & text2</words>
XMLファイルではありません。XMLの場合、&
はとして記述され&
ます。XMLパーサーを使用できないため、非XMLファイルの処理は困難です。このファイルを作成したプログラムを修正し、適切な整形式XMLを生成するように変更することをお勧めします。
これはトリッキーで重要であり、通常はトレードオフが伴います。同様の問題が発生したとき、&
文字の後に大文字または空白(/\&[A-Z ]/
正規表現内)を&
(および「末尾の文字」)に置き換えると、ほとんどの場合が解決しました。整形式ではないXML入力を受け入れます。