码迷,mamicode.com
首页 > 其他好文 > 详细

xml特殊字符处理

时间:2016-08-03 14:50:49      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:

xml文件的特殊字符有5个:< > & " ‘  

xml解析器会对xml中所有值进行解析,所以xml文件某些值含有特殊字符时,就需要对该值进行处理,否则会报错。

 

当xml文件中某节点中放置了包含<或者&字符的值时,此时xml文件或报错,例如:

<Name>aa < bb & cc</Name>

为了避免此类错误,需要把非法字符 "<" 和字符"&"替换为实体引用 :

<Name>aa &lt; bb &amp; cc</Name>

 

在xml中有5个预定义的实体引用(entity reference):

 

特殊符号 实体引用 XML中的含义  
< &lt; 新元素的开始 小于号
> &gt;   大于号
& &amp; 字符实体的开始 逻辑与
" &quot;   双引号
&apos;   单引号

注意:只有"<"和"&",对于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("&", "&amp;");
        xmlStr = xmlStr.Replace("<", "&lt;");
        xmlStr = xmlStr.Replace(">", "&gt;");
        xmlStr = xmlStr.Replace("\"", "&quot;");
        xmlStr = xmlStr.Replace("\‘", "&apos;");
    }

    return xmlStr ;

  }

 

生成xml文件并保存到本地请参照我上一篇随笔:c#生成xml文件并保存到本地

xml特殊字符处理

标签:

原文地址:http://www.cnblogs.com/Carrie-J/p/5732371.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!