2017-01-27 87 views
1

使用linq xDocument我想檢查元素是否位於其父元素之外。C#XDocument元素位於其父元素之外

示例XML:

<document> 
<x> 
<p>text</p> 
</x>--this is correct 

<p>some text</p> --this should be inside <x> tag 
<x> 
<p>text</p> 
</x>--this is correct 
</document> 

預計:

<document> 
<x> 
<p>text</p> 
</x> 
<x> 
<p>some text</p> 
<p>text</p> 
</x> 
</document> 

回答

1

LinqToXml給出了很多關於XML中的元素的信息。 XElements的屬性是.Parent屬性。

所以u可以使用這樣的事情

var unexpectedParagraphs = xdoc.Root 
     .Elements() 
     .Where(x => x.Parent.Name != "x"); 

這將返回在哪裏他們的父母沒有名爲「X」根的直接孩子的任何元素。

您可以檢查此鏈接開始使用linqToXml如果這是新的給你:。 https://msdn.microsoft.com/en-us/library/mt693062.aspx

+0

VAR節點= xdoc.Descendants()元素( 「子」),其中(x => x.Parent .Name.LocalName!=「parent」); - 得到它..謝謝大家 – Chaegie

+0

你可以縮短一點xdoc.Descendants(「孩子」)。其中(..) –

相關問題