温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Xml之Linq怎么遍历存储的数据

发布时间:2020-09-22 11:52:11 来源:亿速云 阅读:156 作者:小新 栏目:编程语言

这篇文章将为大家详细讲解有关Xml之Linq怎么遍历存储的数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

很多时候我们需要用到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。

关于Xml之Linq怎么遍历存储的数据就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI