我目前有一些类似于以下的XML
<First Node>
<Second Node>
<Third Node>
<Fourth Node>
'Lots of Children in here
</Fourth Node>
</Third Node>
</Second Node>
</First Node>
问题是我知道第一,第二和第四节点的确切名称。但是,第三节点可以来自各种可能的名称。在创建XML时,我无法更改XML的结构(它来自第三方接口)。
我尝试过类似以下的linq
tempElement = (From secondElement In xmlDoc.Descendants Select XMLDoc.Element("First Node").Element("Second Node")).FirstOrDefault
我正在使用它来减少不必要的XML。所以在那之后我有一个带
的XElement<Second Node>
<Third Node>
<Fourth Node>
</Fourth Node>
</Third Node>
</Second Node>
然后,我正在使用此linq语句尝试仅返回Fourth Node
fourthElement = tempElement.ElementsAfterSelf.FirstOrDefault
这会返回一个空值。什么是正确的linq,或者有更好的方法来做到这一点?
由于
答案 0 :(得分:2)
只需使用Elements()
代替ElementsAfterSelf()
- 目前正在 SecondNode中寻找元素,而不是 SecondNode中的元素。