xml特殊字符處理


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文件並保存到本地


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM