查找节点与“失踪”的属性
问题描述:
我有XML,看起来像这样:查找节点与“失踪”的属性
<Doc>
<Thing>
<ID type="One">Fred</ID>
</Thing>
<Thing>
<ID>Bill</ID>
</Thing>
<Thing>
<ID type="Two">John</ID>
</Thing>
</Doc>
我可以写LINQ找到的类型=“一个”节点。 (或类型=“两课”)
Dim ThingList As IEnumerable(Of XElement) = _
From el In doc...<Thing>.<ID> _
Where el.Attribute("type").Value = "One" _
Select el
我怎么会写LINQ查询发现,没有一个类型的属性在所有的ID的节点?
答
您应该使用的事实,Attribute()
将返回null /什么,如果没有这样的属性。
在C#中,我会用:
var idsMissingType = doc.Descendants("ID") // Or whatever
.Where(x => x.Attribute("type") == null);
我猜测是你想要的VB是:
Dim ThingList As IEnumerable(Of XElement) = _
From el In doc...<Thing>.<ID> _
Where el.Attribute("type") Is Nothing _
Select el