首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >XML:使用LINQ获取数据

XML:使用LINQ获取数据
EN

Stack Overflow用户
提问于 2015-03-14 06:40:09
回答 1查看 31关注 0票数 0

所以,我开始了这个项目,我甚至不知道如何搜索它。

我有一个非常简单的XML文件:

代码语言:javascript
运行
复制
version="1.0" encoding="utf-8" ?>
<AI>
  <ai>
    <id>1</id>
    <name>NAME</name>
    ...
  </ai>
</AI>

我想搜索"name“元素,得到结果的"id”元素。我试过很多方法,大多数都写了些奇怪的东西。

EN

回答 1

Stack Overflow用户

发布于 2015-03-14 11:05:11

我对您的示例进行了扩展,使其包含更多的<ai>标记,因此结果更加清晰。

因此,首先我将xml转换为XElement。如果您使用的是文件,则可以使用XDocument解析整个文件。接下来,我转到<ai>节点并将其内容提取为匿名类型。然后,当你提取出内容后,使用简单的LINQ表达式就可以很容易地搜索到它。在下面的示例中,我返回id,其中name等于"NAME"

代码语言:javascript
运行
复制
class Program
{
    // A sample xml string.
    static string xml = @"<?xml version=""1.0"" encoding=""utf-8"" ?>
                    <AI>
                      <ai>
                        <id>1</id>
                        <name>NAME</name>
                      </ai>
                      <ai>
                        <id>2</id>
                        <name>NAME2</name>
                      </ai>
                      <ai>
                        <id>3</id>
                        <name>NAME3</name>
                      </ai>
                    </AI>";

    static void Main(string[] args)
    {
        // Read the string.
        XElement xelem = XElement.Parse(xml);

        var results = xelem.Descendants("ai")    // Get all <ai> nodes.
                           .Select(x =>
                           new
                           {
                               // Get values from <id> and <name>.
                               // Use anonymous types to store the results.
                               id = x.Descendants("id").First().Value,       
                               name = x.Descendants("name").First().Value,    
                           });

        // Filter out required result.
        var filtered = results.Where(x => x.name == "NAME").First().id;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29043143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档