XPath - подходит ли для адресации в любых деревьях?

Как написать рекурсивный парсер?, Разработка на C# под linux
 
http://www.w3schools.com/xsl/xpath_syntax.asp
XPath uses path expressions to select nodes or node-sets in an XML document.
(означает ли это, что учитывается какая-то специфика именно XML, или можно использовать для AST ?)

The node is selected by following a path or steps.

The most useful path expressions are listed below:
Expression Description
nodename Selects all nodes with the name "nodename"
/ Selects from the root node
// Selects nodes in the document from the current node that match the selection no matter where they are
. Selects the current node
.. Selects the parent of the current node
@ Selects attributes


//book Selects all book elements no matter where they are in the document
bookstore//book Selects all book elements that are descendant of the bookstore element, no matter where they are under the bookstore element
//@lang Selects all attributes that are named lang

EBNF для XPath

http://www.w3.org/TR/xquery-xpath-parsing/#id-grammar

XPath в .Net framework

Для того, чтобы сымитировать этот интерфейс, нужно представлять из чего он состоит.
System.Xml.XPath, IXPathNavigable
Для чего имитировать? Для того, чтобы навыки людей использовались повторно (то есть, чтобы выучив одно, было сразу понятно как использовать другое)
Predicates are used to find a specific node or a node that contains a specific value.
Predicates are always embedded in square brackets.

By using the | operator in an XPath expression you can select several paths.