繁体   English   中英

根据属性值LINQ to xml选择节点

[英]Select node based on attribute value LINQ to xml

我想根据属性选择xml节点。 我对linq to xml的工作方式非常陌生,并且无法编写正确的查询。 我该如何解决?

我的XML

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="Enable0" value="true" />
    <!-- dumb comment -->
    <add key="Enable1" value="false" />
    <!-- dumb comment1-->
    <add key="Enable2" value="true" />
    <add key="Enable3" value="false" />
    <!-- dumb comment2 -->
    <add key="Enable4" value="true" />
  </appSettings>
  <asdf>
    <a key="b"></a>
    <a key="c"></a>
    <a key="d"></a>
  </asdf>
</configuration>

我的尝试:

        private string GetAttribute(string name)
    { 

        //???
        var query = from node in deafultElement.Elements("add")
                    where node.Attribute("key").Value == name
                    select node.Attribute("value").value;

        return query.toString();
        //currently returns "System.Linq.Enumerable+WhereSelectEnumerableIterator`2[System.Xml.Linq.XElement,System.String]"
    }

您还可以使用linq方法的语法来达到相同的结果。

string value = defaultElement.Elements("add")
            .FirstOrDefault(n => n.Attribute("key").Value == name)
            .Attribute("value").Value;
  var query = (from node in deafultElement.Elements("add")
      where node.Attribute("key").Value == name
      select node.Attribute("value").Value).FirstOrDefault();
  return query

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM