XML(eXtensible Markup
Language)可扩展标记性语言:
xml特点:
xml只有一个根节点
注释本身也是一个节点,但是不影响根节点,影响子节点
所有的xml的注释节点的名称都叫:#comment(词意:注释、评论)
文本也是一个节点,名称叫:#text
如:<man>文本<Name>张三</Name></man>
xml读取:
//1.引入Xml命名空间
using
System.Xml;
//2.创建 xml文档 对象
XmlDocument xdoc = new
XmlDocument();
//3.加载xml文档(读取到内存中)
xdoc.Load("xml文档路径");
//4.根据
xml文档对象.DocumentElement 获取根节点
XmlNode xNode =
xdoc.DocumentElement;
//5.根据 节点的属性或方法 执行相应的操作
并得到相应的结果
如:获取节点名称
string nName = xNode.Name;
xml属性:
//获取 节点
名称
xNode.Name;
//获取或设置
节点及其所有子节点的串联值
xNode.InnerText;
//获取或设置
节点的值(如:注释中文本、节点属性的值)
xNode.Value;
//获取XmlNodeList中的节点数
xNode.Count;
//获取
节点的所有子节点(集合)
xNode.ChildNodes;
//获取
节点的指定index的子节点
xNode.ChildNodes[0];
//获取
节点的所有属性集合
xNode.Attributes;
如:下面的height和color
<Man height =
"180" color = "red">男人</Man>
//获取
节点的指定index属性的名称
xNode.Attributes[0].Name; //如上,就会得到 height
//获取
节点的指定index属性的值
xNode.Attributes[0].Value; //如上,就会得到
180
xNode.Attributes[0].InnerText;
//如上,和Value得到的值相同
//获取节点的第一个子级
xNode.FirstChild;
//获取节点的最后一个子级
xNode.LastChild;
//获取紧接在该节点之后的节点
xNode.NextSibling;
//获取紧接在该节点之前的节点
xNode.PreviousSibling;
//获取或设置仅代表该节点的子节点的标记(包含
标签 的全部内容)
xNode.InnerXml;
//获取表示此节点及其所有子节点的标记(包含 标签
的全部内容)
xNode.OuterXml;
//MSDN
XmlNode属性详解链接
http://127.0.0.1:47873/help/2-4128/ms.help?method=page&id=PROPERTIES.T%3aSYSTEM.XML.XMLNODE&topicversion=100&topiclocale=ZH-CN&SQM=1&product=VS&productVersion=100&locale=ZH-CN
///
<summary>
/// 1.递归遍历XML文档中每个子节点中的文本
/// </summary>
///
<param name="xNode">节点</param>
public void Show(XmlNode
xNode)
{
//获取当前节点的下一级节点的数量
int xnCount =
xNode.ChildNodes.Count;
//如果下一级节点的数量大于0
if (xnCount >
0)
{
//循环遍历每个子节点
foreach (XmlNode item in
xNode)
{
Show(item);
//递归得到最底层的节点
}
}
//如果下一级节点的数量等于0
else
{
//显示节点的
InnerText文本
MessageBox.Show(xNode.InnerText);
//特点:空文本也会显示
}
}
/// <summary>
/// 2.递归获得每个子节点value
///
</summary>
public void GetValue_2(XmlNode node)
{
if(node.Name == "#text")
{
MessageBox.Show(node.Value);
//特点:1.节点间没有文本时,不会显示 2.不会显示注释(因为注释的名称叫"#comment")
}
foreach (XmlNode
item in
node.ChildNodes)
{
GetValue_2(item);
}
}
原文:http://www.cnblogs.com/tsyblog/p/3596719.html