【问题标题】:Visual Studio c# / xml get specific sub-elementsVisual Studio c#/xml 获取特定子元素
【发布时间】:2017-05-11 00:48:10
【问题描述】:

有人可以帮助我使用 Visual Studio (c#) 从 XML 文件中获取特定子元素值的最佳方法。我是使用 XML 的新手,没关系在 Visual Studio 中使用它。

这是一些 XML 示例,例如,我只想从级别 1 获取“data_A”和“data_B”,但同时,我希望能够重用代码为级别做同样的事情2、无需全部重写。

<game name="test">
    <area level="1">
        <data_a> foo </data_a>
        <data_b> foo </data_b>
        <data_c> foo </data_c>
    </area>
    <area level="2">
        <data_a> foo </data_a>
        <data_b> foo </data_b>
        <data_c> foo </data_c>
    </area>
</game>

另外,对于垃圾邮件墙感到抱歉。

【问题讨论】:

    标签: c# xml visual-studio


    【解决方案1】:

    正如著名数学家刘易斯卡罗尔所说,最佳是相对的。试试这个 xml linq 解决方案:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Xml;
    using System.Xml.Linq;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            const string FILENAME = @"c:\temp\test.xml";
            static void Main(string[] args)
            {
                XDocument doc = XDocument.Load(FILENAME);
    
                var resuts = doc.Descendants("area").Where(x => (int)x.Attribute("level") == 1).Elements().Select(x => new {
                    name = x.Name.LocalName,
                    value = (string)x
                }).ToList();
    
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-07
      • 2022-01-04
      • 2021-04-26
      相关资源
      最近更新 更多