| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
Demetrius22
8年前发布

Xml之Linq遍历

来自: http://cnbin.github.io/blog/2016/02/14/xmlzhi-linqbian-li/

很多时候我们需要用到Xml文件,但是什么是Xml文件呢?

以下我们用一个例子来说明:testResult.xml文件

<?xml version="1.0" encoding="utf-8" ?>  <Columns>    <column id="序号">      <name>序号</name>    </column>    <column id="检验项目">      <name>检验项目</name>    </column>    <column id="单位">      <name>单位</name>    </column>    <column id="标准要求">      <name>标准要求</name>    </column>    <column id="检验结果">      <name>检验结果</name>    </column>    <column id="结论">      <name>结论</name>    </column>  </Columns>

以上就是一个Xml文件,我们知道,Xml文件是用来存储数据的,那么我们如何遍历这些数据呢?

其实最简单的方法,就是使用Linq:

   private void GetTestResultXml()      {          List<string> iTestResultXml=new List<string>();          //定义并从xml文件中加载节点(根节点)          XElement rootNode = XElement.Load(@"..\..\Xml\testResult.xml");             //查询语句: 获得根节点下name子节点(此时的子节点可以跨层次:孙节点、重孙节点......)          IEnumerable<XElement> targetNodes = from target in rootNode.Descendants("column")                                              select target;          foreach (XElement node in targetNodes)          {              iTestResultXml.Add(node.Value);          }      }

这样我们就可以获得 <column/> 标签里所有的数据了,并把他们存储到列表iTestResultXml中。

在testResult.xml文件中,我们看到, <column/> 标签设置了本身的id,而此id并不是他的数据,而是他的一个属性,

那么如果我们想获得他的属性而不是他标签里的内容该如何获得呢?

private void GetTestResultXml()      {          List<string> iXmlID = new List<string>();          //定义并从xml文件中加载节点(根节点)          XElement rootNode = XElement.Load(@"..\..\Xml\testResult.xml");             //查询语句: 获得根节点下name子节点(此时的子节点可以跨层次:孙节点、重孙节点......)          IEnumerable<XElement> targetNodes = from target in rootNode.Descendants("column")                                              select target;          foreach (XElement node in targetNodes)          {               iXmlID.Add(node.Attribute("id").Value);   //获取指定属性的方法          }      }

这样我们就获取了 <column/> 标签里id属性的列表iXmlID。

 本文由用户 Demetrius22 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1455497637698.html
XML LINQ .NET开发