【发布时间】:2013-02-20 06:50:30
【问题描述】:
我在编写 LINQ 查询以从 XML 获取某些节点时遇到问题,希望有人能提供帮助。 这是 XML:
<EmpFieldsMap>
<Field>
<Name insert = "false">EmpNumber</Name>
</Field>
<Field>
<Name insert = "true">EmpName</Name>
</Field>
<Field>
<Name insert = "true">EmpLocation</Name>
</Field>
<Field>
<Name update = "false">EmpAddress1</Name>
</Field>
<Field>
<Name update = "false">EmpAddress2</Name>
</Field>
<Field>
</EmpFieldsMap>
如您所见,一些Name 标记具有insert,而另一些则具有update 属性。
我需要获取没有insert 属性并将insert 作为true 的标签。
这意味着InsertCollection 应该有EmpName、EmpLocation、EmpAddress1 和EmpAddress2。
这段代码:
var titles = from nameTag in xml.Element("EmpFieldsMap").Elements("Field")
let insert = nameTag.Attribute("insert") ?? new XAttribute("insert","true")
where insert.Value == "true"
select nameTag.Element("Name").Value;
给出所有五个Field 标记值,忽略Where 子句。
我错过了什么?
【问题讨论】:
标签: c# .net xml linq linq-to-xml