就在我以为我有Linq To Xml时我怀疑我还面临另一个错误!我想如果我一般更了解linq搜索过程,我可能会取得更大的成功,所以任何有关这方面的良好链接也是受欢迎的。然而,对我的问题;使用以下代码:
Dim xd As XDocument = _
<?xml version="1.0" encoding="utf-8"?>
<root>
<element>
<subelement id="1"/>
<subelement id="2"/>
<subelement id="3"/>
</element>
<element>
<subelement id="4"/>
<subelement id="1"/>
<subelement id="5"/>
</element>
</root>
Dim results = _
From q In xd.Descendants.<element> _
Where q.<subelement>.@id = 1
For Each xe As XElement In results
Console.WriteLine(xe.ToString)
Next
我原本希望上面的代码返回两个'element'节点,但它只返回第一个,因为它只搜索'element'中的第一个'subelement'节点,如何让where子句适用于所有'子元素'节点?
答案 0 :(得分:1)
你可以做到
Dim results = _
From q In xd.Descendants.<element> _
From p In q.<subelement> _
Where p.@id = 1
(也就是说,如果我的VB.NET完成了这里的任务......我可以用C#来完成。请随时编辑。)