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