XmlDocument对象是用处理xml文件的。
这里先介绍几个知识点。
1.CDATA 不检测文本,因为和网页的跨站攻击一样,xml也存在转义的问题。在CDATA块内的数据会原样输出。
2.XmlNode和XmlElement的区别,后者是前者的子类,前者包括的范围广,xml文档的所有节点都归宿XmlNode,
只有文本节点才属于XmlElement。
用法:
1.Load 加载xml文档。
2.LoadXml 加载xml文档,内部调用了Load方法。
3.HasChildNode 判断是否有子节点。
3.NodeChilds 拿到所有子节点。
4.Name 节点的名称。
5.value 节点的值。测试一直拿不到值,现在还不知道原因。
6.innerText 节点下所有后代节点的文本。
7.innerXml 节点下所节点。包括标签和文本。
8.CreateElement 创建节点。
9.AppendChild 追加节点,这里不能追加在根节点下,因为每个xml只能有一个根节点。
10.DocumentElement 文档的根节点。
11.SelectNodes 选择节点,这里得到的集合。
12.SelectSingleNode 选择节点 会得到符合条件的第一个节点。
13.通过各种节点的操作也能只拿到想要的节点。如ChildNodes、FirstNode、LastNode
14.NodeType 节点的类型。这里列出了一点
Attribute 属性 如id
CDATA
comment 注释部分
document 根节点
documentfragment 文档
elemet 元素 如<item>
endelement 结束元素 如</item>
entity 实体声明
entity 实体声明结束
entityreference 对实体的引用 如#
text节点的文本内容
xmldeclaration 文档的声明部分 如<?xml version="1
if (xmlDoc.NodeType==XmlNodeType.XmlDeclaration)
经测试 :对于一个节点如<item>text</item>
其中text为item的子节点。
15.代码分析
(1)写xml
XmlDocument xml=new XmlDocument();//创建xml文档实例 XmlDeclaration xmlDeclaration=xml.CreatrXmlDeclaration("1.0","utf-8","yes");//创建声明节点<?xml version='1' ?>
//参数以此是版本号 编码格式 是否是独立的 官方提示版本号必须为1 xml.AppendChild(xmlDeclaration);//把声明节点加入xml文档 XmlElement rootElement =xml.CreateElemnet("order");//创建根节点 ,每个xml文档只能用于一个根节点 XmlNode node=xml.AppendChild(rootElement);//把根节点加入xml文档,返回值就是这个节点 XmlElement element =xml.CreateElemnet("child");//再使用xml对象创建XmlElement对象 node.AppendChild(element );//加入到根节点中 xml.Save("demo.xml");//保存
(2)读xml文档
通过Load方法加载一个xml文档。
SelectNodes获取节点,
HasChildren判断是否用于子节点
通过XmlNode的各种属性获取各种需求的值