XML에서 &를 올바르게 대체합니까?

XML에서 &를 올바르게 대체합니까?

& "&" 를 "다음 항목을 제외한 XML 특수 문자" 로 바꾸고 싶습니다 .

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

나는 언급된 방법을 시도했다.두 문자열 사이에 지정된 문자를 바꾸시겠습니까?그리고지정된 XML 태그의 모든 "&"를 바꾸려면 sed를 사용하세요. 단, XML 엔터티 "&"의 "&"를 "#"으로 바꾸지는 마세요.나에게는 효과가 없는 것 같습니다.

답변1

Perl 한 줄 사용:

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'

관련 정보