xml一般的转义规则大家都知道,
xml属性和xml文本节点需要转义
& --> &
" --> "
' --> '
< --> <
> --> >
CDATA节点中不需要转义这些
但是以下这些特殊情况要怎么转义呢
不可见字符或无效字符,例如ascii码为0x01的字符
规则:以&#开头,加上该字符unicode编码的值,以;结尾,例如:
<a></a>
CDATA中包含]]>
规则:将]]>拆分开,分别用多段CDATA括起来,例如a节点下CDATA节点值为A]]>B]]>,表示为
<a><![CDATA[A]]]]><![CDATA[>B]]]]><![CDATA[>]]></a>
CDATA中包含不可见字符或无效字符
规则:将无效字符保持在CDATA外进行xml转义,例如a节点下CDATA节点值为A B,表示为
<a><![CDATA[
A]]>
<![CDATA[
B]]></a>
所以,
用成熟的xml库来生成xml字符串,
或者自己写一个专门用来组装xml的类或函数,
不要使用字符串连接来组装xml了