如何获取xml节点的祖父和祖父

时间:2009-05-15 11:53:35

标签: asp.net xml vb.net

分层树中当前节点上方的任何节点示例父,祖父,祖父或腐烂节点都是xml中阳极的祖先

如何获得当前节点xml的祖父和大祖父。

我在ASP.NET应用程序中使用VB.Net。

谢谢哇答案很漂亮

我可以拥有类似XmlNode的内容greatGrandParent = myNode.ParentNode.ParentNode.ParentNode.lastchild.lastchild

2 个答案:

答案 0 :(得分:3)

使用System.Xml,XmlNode具有ParentNode属性,因此您可以使用它来遍历树。

使用System.Xml.XPath,XPathNavigator有一个MoveToParent方法。

使用System.Xml.Linq,XNode类有一个Ancestors方法,可以有点整洁: -

GrandParent = Node.Ancestors.Skip(1).Single()
GreatGrandParent = Node.Ancestors.Skip(2).Single()

答案 1 :(得分:3)

在所提供的非常有限的信息(昏暗)中,我只建议您使用上下文XmlNode对象的ParentNode属性。

例如。得祖父母:

XmlNode grandParent = myNode.ParentNode.ParentNode;

例如。得祖父母:

XmlNode greatGrandParent = myNode.ParentNode.ParentNode.ParentNode;

请注意,这很容易出现异常。例如,如果当前节点没有ParentNode(或属于类型 - Attribute,Document,DocumentFragment,Entity,Notation),则代码将抛出异常,因为此类节点不能具有Parent。

请修改您的问题以提供更多信息,以便答案可以“更好”。