标签:
xml文件的特殊字符有5个:< > & " ‘
xml解析器会对xml中所有值进行解析,所以xml文件某些值含有特殊字符时,就需要对该值进行处理,否则会报错。
当xml文件中某节点中放置了包含<或者&字符的值时,此时xml文件或报错,例如:
<Name>aa < bb & cc</Name>
为了避免此类错误,需要把非法字符 "<" 和字符"&"替换为实体引用 :
<Name>aa < bb & cc</Name>
在xml中有5个预定义的实体引用(entity reference):
特殊符号 | 实体引用 | XML中的含义 | |
< | < | 新元素的开始 | 小于号 |
> | > | 大于号 | |
& | & | 字符实体的开始 | 逻辑与 |
" | " | 双引号 | |
‘ | ' | 单引号 |
注意:只有"<"和"&",对于xml来说是严格禁止使用的。引号和大于号是合法的,但是把它们替换为实体引用是个好的习惯。
下面的函数用于把特殊字符转换为实体引用
public static string EncodeXml(string xmlStr) {
if (string.IsNullOrEmpty(xmlStr))
return "";
if (xmlStr.Contains("&") || xmlStr.Contains("<") || xmlStr.Contains(">") || xmlStr.Contains("\"") || xmlStr.Contains("\‘"))
{
xmlStr = xmlStr.Replace("&", "&");
xmlStr = xmlStr.Replace("<", "<");
xmlStr = xmlStr.Replace(">", ">");
xmlStr = xmlStr.Replace("\"", """);
xmlStr = xmlStr.Replace("\‘", "'");
}
return xmlStr ;
}
生成xml文件并保存到本地请参照我上一篇随笔:c#生成xml文件并保存到本地
标签:
原文地址:http://www.cnblogs.com/Carrie-J/p/5732371.html