xml 相关问题
一、xml 特殊字符,过滤方法?
① 方法Ⅰ
五个在XML文档中预定义好的实体:
<
<?
小于号
>
>?
大于号
&
&
和
'
'
单引号
"
"
双引号
过滤方法:
protected string XmlFilter(string xml) { xml = xml.Trim(); if (string.IsNullOrEmpty(xml)) return string.Empty; xml = xml.Replace("<", "<"); xml = xml.Replace(">", ">"); xml = xml.Replace("&", "&"); xml = xml.Replace(""", """); xml = xml.Replace("'", "'"); return xml; }?
② 方法Ⅱ
每当数据中有'<'、'&'符号时,封装的XML就无法解析。发现了XML里的CDATA属性,问题迎刃而解!
在XML文档中的所有文本都会被解析器解析。
只有在CDATA部件之内的文本会被解析器忽略。
?
一个 CDATA 部件以"<![CDATA[" 标记开始,以"]]>"标记结束:
<script><![CDATA[function matchwo(a,b){if (a < b && a < 0) then{return 1}else{return 0}}]]></script>?
?
在前面的例子中,所有在CDATA部件之间的文本都会被解析器忽略。
CDATA注意事项:
CDATA部件之间不能再包含CDATA部件(不能嵌套)。如果CDATA部件包含了字符"]]>" 或者"<![CDATA[" ,将很有可能出错哦。
同样要注意在字符串"]]>"之间没有空格或者换行符。
?
?
?
?
?
?
?
?
?
?
?
?
?