Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 需要一个用于此XML结构的LINQ select查询的想法吗_C#_Linq To Xml - Fatal编程技术网

C# 需要一个用于此XML结构的LINQ select查询的想法吗

C# 需要一个用于此XML结构的LINQ select查询的想法吗,c#,linq-to-xml,C#,Linq To Xml,我正在开发一个自定义搜索控件,并根据下面的示例XML设置其配置。因此,如果用户在其ASPX页面中使用my控件,并在其页面中将属性声明为: <ccl:Search control id='searchtextbox' PageName='Master' /> 这将只返回属性列表,而不返回必要的值。您可以尝试: elem.Descendants("PageName"). Where(element => element.Attribute("Name")

我正在开发一个自定义搜索控件,并根据下面的示例XML设置其配置。因此,如果用户在其ASPX页面中使用my控件,并在其页面中将属性声明为:

<ccl:Search control id='searchtextbox' PageName='Master' /> 
这将只返回属性列表,而不返回必要的值。

您可以尝试:

elem.Descendants("PageName").
            Where(element => element.Attribute("Name").Value == "Master").First().
            Descendants().Select(element => element.Value);
意思->获取名为“Master”的第一个子节点,然后获取其所有子节点的值

您可以尝试:

elem.Descendants("PageName").
            Where(element => element.Attribute("Name").Value == "Master").First().
            Descendants().Select(element => element.Value);
var ch = doc.Descendants("PageName")
            .Where(p => (string)p.Attribute("name") == "Master")
            .Elements("Key")
            .Select(k => new
                         {
                             Id = (string)k.Attribute("id"),
                             Value = k.Value
                         }
            );

意思->获取名为“Master”的第一个子节点,然后获取其所有子节点的值

您可以使用XPath来实现此目的。看看这个:这将是我最后的选择。但是目前正在寻找Linq.com,您可以使用XPath来实现这一点。看看这个:这将是我最后的选择。但目前正在寻找Linq。这不起作用——“Master”是一个属性,而不是一个元素。@Sayed:看到你的回答太晚了,你当然是对的,我编辑了答案这不起作用——“Master”是一个属性,而不是元素。@Sayed:看到你的回答太晚了,你当然是对的,我编辑了答案
var ch = doc.Descendants("PageName")
            .Where(p => (string)p.Attribute("name") == "Master")
            .Elements("Key")
            .Select(k => new
                         {
                             Id = (string)k.Attribute("id"),
                             Value = k.Value
                         }
            );