一、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[" ,将很有可能出错哦。
同样要注意在字符串"]]>"之间没有空格或者换行符。