【发布时间】:2009-11-06 20:02:57
【问题描述】:
假设你有一个像这样的 XML:
<data>
<messages>
<message name="Person" id="P">
<field name="FirstName" required="Y" />
<field name="LastName" required="Y" />
<field name="Sex" required="N" />
</message>
<message name="Car" id="C">
<field name="Make" required="Y" />
<field name="Model" required="Y" />
<field name="Year" required="N" />
</message>
</messages>
</data>
使用 Linq,您如何获得 Person 的所有必需字段名称的列表?
我今天刚开始使用 LINQ/XML,这大概是我所了解的。
var q = from c in loaded.Descendants("field")
where (string)c.Attribute("required") == "Y" &&
// how to check the parent node (message) has an attribute (id="P")
select (string)c.Attribute("name");
foreach (string name in q)
Console.WriteLine(name);
【问题讨论】:
-
您没有这样的 XML,它不是有效的 XML 文档。您可以发布您拥有的实际 XML,或者至少是一个工作示例吗?
标签: c# xml linq parent-node