C#操作XML之——读取XML节点


1.使用XmlNode读取节点

XmlNode属性和方法详见msdn。
以例子说明XmlNode读取节点。


=========XML文档========

<?xml version="1.0">
 <联系人列表>
   <联系人>
     <姓名>张三</姓名>
     <ID>001</ID>
     <公司>A公司</公司>
     <电话>12345678</电话>
     <地址>
        <街道>观海路123号</街道>
        <城市>烟台</城市>
        <省份>山东</省份>
        <ZIP>264000</ZIP>
     </地址>
   </联系人>
   <联系人>
     <姓名>李四</姓名>
     <ID>002</ID>
     <公司>B公司</公司>
     <电话>12348888</电话>
     <地址>
        <街道>中关村88号</街道>
        <城市>北京</城市>
        <省份>北京</省份>
        <ZIP>100801</ZIP>
     </地址>
   </联系人>
 </联系人列表>


=========XML文档结束========

代码

//使用XmlDocument读取XML
 XmlDocument xdoc=new XmlDocument();
//相对路径
 xdoc.Load(@"..\books.xml");
//第一个节点
 XmlNode xnode=xdoc.DocumentElement.FirstChild;
//节点名(联系人)
 xnode.Name;
//节点类型(Element)
 xnode.NodeType;
//属性名(id)
 xnode.Attribute[0].Name;
//属性值(001)
 xnode.Attribute[0].Value;

2.使用XmlNodeList读取节点

1)

xnlist=xdoc.SelectNodes("/联系人列表/联系人");
 返回结果:<联系人><姓名>张三</姓名><ID>001</ID><公司>A公司</公司><电话>12345678</电话><地址>
        <街道>观海路123号</街道><城市>烟台</城市><省份>山东</省份><ZIP>264000</ZIP></地址> </联系人>
   <联系人><姓名>李四</姓名><ID>002</ID><公司>B公司</公司><电话>12348888</电话><地址><街道>中关村88号</街道>
        <城市>北京</城市><省份>北京</省份><ZIP>100801</ZIP></地址>
   </联系人>

2)

xnlist=xdoc.SelectSingleNode("联系人").ChildNodes;
 返回结果同上
 3)
xnlist=xdoc.SelectNodes("/联系人列表/联系人/姓名/text()");
 返回结果:#text:张三
 #text:李四