我的xml看起来像这样:
<Doc>
<Thing>
<ID type="One">Fred</ID>
</Thing>
<Thing>
<ID>Bill</ID>
</Thing>
<Thing>
<ID type="Two">John</ID>
</Thing>
</Doc>
我可以编写LINQ来查找type =“One”节点。 (或输入=“两个”)
Dim ThingList As IEnumerable(Of XElement) = _
From el In doc...<Thing>.<ID> _
Where el.Attribute("type").Value = "One" _
Select el
如何编写linq查询来查找根本没有type属性的ID节点?
答案 0 :(得分:3)
如果没有这样的属性,你应该使用Attribute()
将返回null / nothing的事实。
在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