一直在绞尽脑汁想弄清楚如何执行 linq xml 查询。
我希望查询返回以下 xml 中类别/名称 =“第一类别”的所有“产品”项目的列表
<catalog>
<category>
<name>First Category</name>
<order>0</order>
<product>
<name>First Product</name>
<order>0</order>
</product>
<product>
<name>3 Product</name>
<order>2</order>
</product>
<product>
<name>2 Product</name>
<order>1</order>
</product>
</category>
</catalog>
最佳答案
像这样:
XDocument doc = XDocument.Parse(xml);
var qry = from cat in doc.Root.Elements("category")
where (string)cat.Element("name") == "First Category"
from prod in cat.Elements("product")
select prod;
或者也可能使用匿名类型:
XDocument doc = XDocument.Parse(xml);
var qry = from cat in doc.Root.Elements("category")
where (string)cat.Element("name") == "First Category"
from prod in cat.Elements("product")
select new
{
Name = (string)prod.Element("name"),
Order = (int)prod.Element("order")
};
foreach (var prod in qry)
{
Console.WriteLine("{0}: {1}", prod.Order, prod.Name);
}
关于c# - "where"使用 linq xml 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1125093/