Мне нужно что-то, что может записать дерево выполнения для любого скомпилированного выражения XPath версии 2.
С помощью программы testXPath
, поставляемой с libxml2
, вы можете скомпилировать выражение XPath и затем вывести дампдерево, которое представляет шаги для выполнения этого выражения.Но это только для XPath версии 1.
Я несколько дней гуглял, чтобы найти что-то для XPath версии 2. Без удачи.
Вот пример с testXPath:
testXPath --tree '/foo[@bar="baz"]/horse'
Вывод:
SORT
COLLECT 'child' 'name' 'node' horse
COLLECT 'child' 'name' 'node' foo
ROOT
PREDICATE
EQUAL =
COLLECT 'attributes' 'name' 'node' bar
NODE
ELEM Object is a string : baz
COLLECT 'attributes' 'name' 'node' bar
NODE
Вот пример с XPath версии 2:
testXPath --tree '/foo/(bar|baz)'
И результат:
XPath error : Invalid expression
/foo/(bar|baz)
^