Как получить прародителя и прародителя узла xml - PullRequest
0 голосов
/ 15 мая 2009

любой узел выше текущего узла в иерархическом древовидном примере, например, родитель, прародитель, пра-прародитель или узел гнили все являются предками анода в XML

Как я могу получить прародителя и прародителя текущего узла xml.

Я использую VB.Net в приложении ASP.NET.

спасибо, да, ответы прекрасны

могу ли я иметь что-то вроде XmlNode greatGrandParent = myNode.ParentNode.ParentNode.ParentNode.lastchild.lastchild

Ответы [ 2 ]

3 голосов
/ 15 мая 2009

В (тусклом) свете очень ограниченной предоставленной информации я бы предложил только использовать свойство ParentNode объекта контекста XmlNode.

например. Получить бабушку и дедушку:

XmlNode grandParent = myNode.ParentNode.ParentNode;

например. Получить бабушку и дедушку:

XmlNode greatGrandParent = myNode.ParentNode.ParentNode.ParentNode;

Обратите внимание, что это может привести к исключениям. Например, если текущий узел не имеет ParentNode (или имеет тип - Атрибут, Документ, DocumentFragment, Entity, Notation), тогда код сгенерирует исключение, потому что такие узлы не могут иметь Parent.

Пожалуйста, измените свой вопрос, чтобы предоставить больше информации, чтобы ответы могли быть «лучше».

3 голосов
/ 15 мая 2009

Используя 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...