XPath обратный поиск - PullRequest
       0

XPath обратный поиск

2 голосов
/ 07 января 2011

Учитывая список запросов XPath и узла в документе XML, мне нужно выяснить все запросы XPath, которые соответствуют узлу.Самый простой способ - пройти каждый запрос XPath и сопоставить узел.Но я ищу более быстрый способ сделать это.Существуют ли какие-либо библиотеки / инструменты в .NET (или на любой платформе)?

1 Ответ

1 голос
/ 07 января 2011

Просто используйте :

count(yourExpression | $theNode) = count(yourExpression)

Замените "yourExpression" любым из ваших выражений и $theNode выражением XPath, которое выбирает именно этот узел, затем возьмите их, для которых результат равен :

true()

В .NET способ оценки любого выражения XPAth 1.0 заключается в вызове метода XPathNavigator.Evaluate().

Помните : членство в наборе узлов (как в XPath 1.0, так и в XPath 2.0) может быть выражено как:

count($node-set | $node) = count($node-set)

Решение XPath 2.0:

yourExpression intersect $theNode is $theNode

или просто :

boolean(yourExpression intersect $theNode)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...