C#XDocument元素在其父元素之外

C#XDocument元素在其父元素之外,c#,C#,使用LINQXDocument,我想检查元素是否在其父元素之外 示例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 &l

使用LINQXDocument,我想检查元素是否在其父元素之外

示例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>

正文

一些文本

正文


LinqToXml提供了大量关于xml中元素的信息。 XElements的属性之一是.Parent属性

所以你可以用这样的东西

var unexpectedParagraphs = xdoc.Root
      .Elements()
      .Where(x => x.Parent.Name != "x");
这将返回其父元素未命名为“x”的根的直接子元素

如果您不熟悉linqToXml,可以选中此链接以开始使用linqToXml:

var nodes=xdoc.subjects().Elements(“子”)。其中(x=>x.Parent.Name.LocalName!=“Parent”);--知道了。。谢谢大家你可以把它缩短一点