XMLで&を正しく置き換えますか?

XMLで&を正しく置き換えますか?

& 「&」を「次の項目を除くXML特殊文字」に置き換えたいと思います。

"   "
'   '
<   &lt;
>   &gt;
&   &amp;

私は言及された方法を試みた。2つの文字列の間に指定された文字を置き換えますか?そして指定されたXMLタグのすべての「&」を置き換えるには、sedを使用してください。ただし、XMLエンティティ「&」の「&」を「#」に置き換えないでください。私には効果がないようです。

ベストアンサー1

Perl 1行使用:

perl -pe 's/&(?!(quot|apos|lt|gt|amp);)/&amp;/g'

この-pフラグはPerlにsed(STDIN行を繰り返し、操作を実行し、STDOUTとして印刷)のように動作させ、ファイルではなく引数から-eコマンドを読み取るように指示します。

正規表現置換が実行するタスクは次のとおりです。

  • マッチ&
    • フォロー禁止
    • quotまたはapos...amp
    • セミコロン
  • 使用。 。 。交換&amp;
  • すべてのオンライン大会に適用されます。

sedのように使用してください。

perl -pe 's/&(?!(quot|apos|lt|gt|amp);)/&amp;/g' < my-file.xml
./myscript.sh | perl -pe 's/&(?!(quot|apos|lt|gt|amp);)/&amp;/g'

おすすめ記事