2

私のPerlプログラムはXMLファイルを処理しています。一部のエントリには&記号が含まれている場合があります。そして、パーサーが壊れて、「エンティティの名前が無効です」と言います。

ファイルを処理し、すべての誤ったエンティティで&-sをエンコードするにはどうすればよいですか?

したがって、次のようになります。

<words>text1 & text2</words>  -->  <words>text1 &amp; text2</words>
4

2 に答える 2

6

XMLファイルではありません。XMLの場合、&はとして記述され&amp;ます。XMLパーサーを使用できないため、非XMLファイルの処理は困難です。このファイルを作成したプログラムを修正し、適切な整形式XMLを生成するように変更することをお勧めします。

于 2012-07-15T22:32:55.897 に答える
3

これはトリッキーで重要であり、通常はトレードオフが伴います。同様の問題が発生したとき、&文字の後に大文字または空白(/\&[A-Z ]/正規表現内)を&amp;(および「末尾の文字」)に置き換えると、ほとんどの場合が解決しました。整形式ではないXML入力を受け入れます。

于 2012-07-15T19:59:13.633 に答える