就像我可以用来echo 'one two' | perl -MURI::Escape -wlne 'print uri_escape $_'
对字符串进行 url 编码一样,我该如何做类似的事情来将字符串编码为有效的 XML?(我将始终在有效的 URL 上使用它,但我需要将它们包含在 XML 标记中)。
问问题
593 次
1 回答
3
以下将对 XML 文本执行:
perl -MHTML::Entities -CS -pe'$_ = encode_entities($_, "&<")'
以下将对由 分隔的 XML 属性执行以下操作"
:
perl -MHTML::Entities -CS -pe'$_ = encode_entities($_, q{&<"})'
以下将对由 分隔的 XML 属性执行以下操作'
:
perl -MHTML::Entities -CS -pe'$_ = encode_entities($_, "&<'\''")'
全部一起:
perl -MHTML::Entities -CS -pe'$_ = encode_entities($_, q{&<>"'\''})'
>
即使没有必要,我也包括在内,因为大多数人都这样做。
该程序假定要插入文本的文档的字符集是 Unicode,这意味着它假定文档的编码是 UTF-8、UTF-16le、UTF-16be、UTF-32le 或 UTF-32be。如果文档使用不同的字符集,则字符集中不存在的 Unicode 字符也需要转义。
该程序假定输入和输出是 UTF-8。(您的 URI 编码程序假定其输入是 UTF-8。)
但是由于您在谈论有效的 URL,因此以下内容适用于 XML 文本和由 分隔的属性"
:
perl -pe's/&/&/g'
如果该值可以用作由 分隔的属性值'
,则需要
perl -pe"s/&/&/g s/'/'/g"
于 2013-08-20T17:47:47.533 回答