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 = ; 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);
}
XMLCDataSection的更多相关文章
- .NET微信公众号开发-4.0公众号消息处理
一.前言 微信公众平台的消息处理还是比较完善的,有最基本的文本消息,到图文消息,到图片消息,语音消息,视频消息,音乐消息其基本原理都是一样的,只不过所post的xml数据有所差别,在处理消息之前,我们 ...
- 经典C#编程理解,概要,经典
一.NET框架 ADO.NET微软提供的一组类库,可以帮助程序员和数据库交互. CLS(公共语言规范) CTS(通用语言类型) 类库: 可以看成一个承载了N个类的容器. 类库和命名空间: 一个类库对应 ...
- 简介C#读取XML的两种方式
简介C#读取XML的两种方式 作者: 字体:[增加 减小] 类型:转载 时间:2013-03-03 在程序中访问进而操作XML文件一般有两种模型,分别是使用DOM(文档对象模型)和流模型,使用DOM的 ...
- c# 图片XML序列化与反序列化
var xmlDoc = new XmlDocument(); xmlDoc.Load(@"C:\Users\*\Desktop\*.xml"); ].ChildNodes[]; ...
- 在.NET2.0中解析Json和Xml
在.NET解析json有很多方法,这里介绍最简单也用的最多的一种. 一.添加引用 解析Json,先下载开源控件 Newtonsoft.Json.dll 下载地址:http://files.cnblog ...
- C# XML - XmlDocument
http://msdn.microsoft.com/zh-cn/library/System.Xml.XmlDocument(v=vs.80).aspx 1.member http://msdn.mi ...
- XML操作:1.XML类(http://blog.csdn.net/happy09li/article/details/7460521)
XML绑定TreeView private void XmlOperation_Load(object sender, EventArgs e) { path = AppDomain.CurrentD ...
- XmlDocument类
XmlDocument类是.NET框架的DOC解析器.XmlDocument将XML视为树状结构,它装载XML文档,并在内存中构建该文档的树状结构.下面来看下XmlDocument提供了哪些功能. 一 ...
- 文档对象模型操作xml文档
简介 :文档对象模型(DOM)是一种用于处理xml文档的API函数集. 2.1文档对象模型概述 按照W3C的定义,DOM是“一种允许程序或脚本动态地访问更新文档内容,结构和样式的.独立于平台和语言的规 ...
随机推荐
- svn老鸟转用git必须理解的概念
不都是SCM代码管理嘛,有很大区别么?很多svn老鸟都是抱着这样的心态去学习git,然后无一幸免地陷入“查阅过很多资料,依然掌握不好”的困境,至少我们团队是这样的. 网上的资料确实已经很多了,却没有把 ...
- awk 解析maps文件中的地址
maps文件一般是这个样子: pi@raspberrypi:~ $ sudo cat /proc//maps 54b88000-54c8d000 r-xp b3: /lib/systemd/syste ...
- 【Unity Shaders】学习笔记——SurfaceShader(一)认识结构
[Unity Shaders]学习笔记——SurfaceShader(一)认识结构 转载请注明出处:http://www.cnblogs.com/-867259206/p/5595747.html 写 ...
- OpenStack和Redis
前言: 最近开始捣鼓OpenStack了,在用RDO部署OpenStack的时候,发现装了Redis, 遂决定看看OpenStack哪些地方(可以)用到Redis. Redis作为OpenStack ...
- PMP考试--挣值如何计算?
如果你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",加入这个PM.架构师的大家庭 假设一项工作的工期是10天,预算成本是100元:也就是每天的完成进度是10%左右:每 ...
- hadoop fs管理文件权限
sudo addgroup Hadoop#添加一个hadoop组sudo usermod -a -G hadoop larry#将当前用户加入到hadoop组 修改hadoop目录的权限sudo ch ...
- Lotus防病毒与数据备份案例
Lotus防病毒与数据备份案例 上文(http://chenguang.blog.51cto.com/350944/1334595)中我们已安装好了Domino服务器,这节里我们需要考虑安全解决方案, ...
- Excel 代码
package com.chinabase.common.util; import java.io.FileInputStream; import java.io.FileOutputStream; ...
- yiStack平台维护
<一.> yiStack 二次封装 Iso通用发行版相关配置属性值替换1.1.yiStack AIO一体机环境根据部署子网替换修改示例如下:主要修改替换isolinux/ks-aio.cf ...
- PHP isset()与empty()的区别
PHP的isset()函数 一般用来检测变量是否设置 格式:bool isset ( mixed var [, mixed var [, ...]] ) 功能:检测变量是否设置 返回值: 若变量不存在 ...