C# 需要一个用于此XML结构的LINQ select查询的想法吗
我正在开发一个自定义搜索控件,并根据下面的示例XML设置其配置。因此,如果用户在其ASPX页面中使用my控件,并在其页面中将属性声明为: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")
<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
}
);