首页 > 其他 > 详细

C#操作XML

时间:2014-03-13 06:00:12      阅读:528      评论:0      收藏:0      [点我收藏+]

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);
  }
}










C#操作XML,布布扣,bubuko.com

C#操作XML

原文:http://www.cnblogs.com/tsyblog/p/3596719.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!