1
就像我可以使用echo 'one two' | perl -MURI::Escape -wlne 'print uri_escape $_'
進行URL編碼字符串,我該怎麼辦類似編碼字符串有效的XML的東西嗎? (我會一直使用它在有效的URL上,但我需要將它們包含在XML標記中)。perl的一個襯爲XML編碼
就像我可以使用echo 'one two' | perl -MURI::Escape -wlne 'print uri_escape $_'
進行URL編碼字符串,我該怎麼辦類似編碼字符串有效的XML的東西嗎? (我會一直使用它在有效的URL上,但我需要將它們包含在XML標記中)。perl的一個襯爲XML編碼
下面將針對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"