Мне нужно перебрать узлы Ancestors
, чтобы получить соответствующие значения BrowseNodeId
и Name
. Как мне сделать это с помощью XPath? Я пытаюсь что-то вроде следующего, но это не работает:
//BrowseNode[1]//Ancestors[1]/BrowseNode/BrowseNodeId/text()
//BrowseNode[1]//Ancestors[1]/BrowseNode/Name/text()
Я думаю, что //Ancestors
часть XPath на самом деле ищет все дерево XML. Что мне нужно сделать, это посетить каждый узел, чтобы получить необходимые значения. Как мне это сделать? В приведенном ниже примере я хочу: Европа -> История -> Темы -> Книги.
Пример XML:
<BrowseNode>
<BrowseNodeId>4952</BrowseNodeId>
<Name>France</Name>
<Ancestors>
<BrowseNode>
<BrowseNodeId>4935</BrowseNodeId>
<Name>Europe</Name>
<Ancestors>
<BrowseNode>
<BrowseNodeId>9</BrowseNodeId>
<Name>History</Name>
<Ancestors>
<BrowseNode>
<BrowseNodeId>1000</BrowseNodeId>
<Name>Subjects</Name>
<IsCategoryRoot>1</IsCategoryRoot>
<Ancestors>
<BrowseNode>
<BrowseNodeId>283155</BrowseNodeId>
<Name>Books</Name>
</BrowseNode>
</Ancestors>
</BrowseNode>
</Ancestors>
</BrowseNode>
</Ancestors>
</BrowseNode>
</Ancestors>
</BrowseNode>