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);
}
}
转载于:https://www.cnblogs.com/tsyblog/p/3596719.html
原文链接:https://blog.csdn.net/weixin_30342827/article/details/95206427
本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。
还没有人抢沙发呢~