Type:
Class
Constants:
LITERAL
:
/^'([^']*)'|^"([^"]*)"/u
AXIS
:
/^(ancestor|ancestor-or-self|attribute|child|descendant|descendant-or-self|following|following-sibling|namespace|parent|preceding|preceding-sibling|self)::/
RelativeLocationPath
| Step | (AXIS_NAME '::' | '@' | '') AxisSpecifier NodeTest Predicate | '.' | '..' AbbreviatedStep | RelativeLocationPath '/' Step | RelativeLocationPath '//' Step
NCNAMETEST
:
/^(#{NCNAME_STR}):\*/u
Returns a 1-1 map of the nodeset The contents of the resulting array are either: true/false, if a positive match String, if a name match
NodeTest
| ('*' | NCNAME ':' '*' | QNAME) NameTest | NODE_TYPE '(' ')' NodeType | PI '(' LITERAL ')' PI | '[' expr ']' Predicate
QNAME
:
Namespace::NAMESPLIT
NODE_TYPE
:
/^(comment|text|node)\(\s*\)/m
PI
:
/^processing-instruction\(/
VARIABLE_REFERENCE
:
/^\$(#{NAME_STR})/u
| VARIABLE_REFERENCE | '(' expr ')' | LITERAL | NUMBER | FunctionCall
NUMBER
:
/^(\d*\.?\d+)/
NT
:
/^comment|text|processing-instruction|node$/
You don't want to use this class. Really. Use XPath, which is a wrapper for this class. Believe me. You don't want to poke around in here. There is strange, dark magic at work in this code. Beware. Go back! Go back while you still can!