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