• XMLCDataSection


    XmlCDataSection类描述XML数据中的CDATA节。CDATA节在XML数据中的作用是为文本内容定义引号和转义符,即XML解析器不解析CDATA中的任何字符。

    XmlCDataSection类提供XML数据中CDATA 节的结构描述和操作方法。该类继承于System.Xml命名空间的XmlCharactorData类,也是由XmlNode类派生出来的。根据XML数据中CDATA节的特点,XmlCDataSection不能嵌套,也不能包含子节点,所以其从XmlNode类继承而来的对于子节点的操作方法不具有实际的意义。

    XmlCDataSection类的作用是为XML数据建立CDATA节。在XML文档中有些数据是包含有特殊字符的,如“when price>35”中的“>”符号。如果直接将这些字符作为文本块赋予一个元素或者属性,就会引起XML解析器的解析错误。为了避免出现特殊符号影响XML数据的解析,有必要将包含特殊符号的数据使用CDATA节来标记。在实际的应用中,加密后的数据经常会包含特殊的字符,为了确保能够正确地解析加密数据,使用CDATA来保护数据,就可以无须编写复杂的转义解析,而能确保数据的安全传递。

    XmlCDataSection类继承于XmlNode,是后者实例父节点的一个子节点。因此只能通过访问包含该类实例的父节点的子节点列表中读取CDATA数据,而不能直接读取。

    语法定义:

    public class XmlCDataSection : XmlCharacterData

    因为XmlCDataSection类的构造函数是受保护的,所以不能使用其创建XmlCDataSectioin类的实例。一般采用的做法是在XmlDocument类实例中,使用CreateCDataSection方法来创建XmlCDataSection类的实例。下面的代码演示了如何使用XmlDocument类实例建立XmlCDataSection类的实例。

    XmlDocument doc = new XmlDocument();  
      
    //使用XmlDocument类的CreateCDataSection方法创建XmlCDataSection类实例  
      
    XmlCDataSection cdata= doc.CreateCDataSection("when price>35");

     


    方法:

    XmlCDataSection类虽然包含了XmlNode中的子节点方法,但在XML数据结构中的元素属性不具备子节点所有这些方法并无实际意义。另外大部分操作XmlCDataSection类的方法已经在该类所属的XmlElement中实现了。对于XmlCDataSection类本身,主要的方法如表:

    AppendData:在节点字符数据的结尾追加指定的字符串。

    Clone:创建此节点的一个副本

    附上两个XML操作方法:

          /// <summary>
            /// 取出节点值
            /// </summary>
            /// <param name="xmlPath">xml url</param>
            /// <param name="Node">root/test</param>
            /// <returns></returns>
            public static string[] XmlGetHtmlCode(string xmlPath,string Node)
            {
                XmlDocument objXmlDoc = new XmlDocument();
                objXmlDoc.Load(xmlPath);
     
                XmlNodeList elemList = objXmlDoc.GetElementsByTagName(Node);
                string[] arraw = new string[elemList.Count];
                for (int i = 0; i < elemList.Count; i++)
                {
                    arraw[i] = elemList[i].InnerXml.ToString().Replace("<![CDATA[", "").Replace("]]>", ""); ;
                }
     
                return arraw;
            }
    /// <summary>
            /// 插入一节点不带属性,节点值为<![CDATA[
            /// </summary>
            /// <param name="xmlPath">xml url</param>
            /// <param name="MainNode">root/test</param>
            /// <param name="Element">text1</param>
            /// <param name="Content">节点内容</param>
            public static void XmlInsertHtmlCode(string xmlPath, string MainNode, string Element, string Content)
            {
                XmlDocument objXmlDoc = new XmlDocument();
                objXmlDoc.Load(xmlPath);
                XmlNode objNode = objXmlDoc.SelectSingleNode(MainNode);
                XmlElement objElement = objXmlDoc.CreateElement(Element);
                XmlCDataSection CData;
                CData = objXmlDoc.CreateCDataSection(Content);
                objElement.AppendChild(CData);
                objNode.AppendChild(objElement);
                objXmlDoc.Save(xmlPath);
            }
  • 相关阅读:
    DOS命令行
    很好的GDAL初学者资料
    VC++工程文件
    C#操作word文档
    vue 如何不复用组件的 DOM All In One
    2021 最新 XBOX 打丧尸游戏 All In One
    gti gc All In One
    custom height drawer All In One
    Redux & React Hooks All In One
    StackOverflow sites All In One
  • 原文地址:https://www.cnblogs.com/weilei/p/3603686.html
Copyright © 2020-2023  润新知