Class | REXML::Parsers::XPathParser
In: | temp/parsers/xpathparser.rb
Parent: | Object

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!

### Methods

abbreviate expand namespaces= parse predicate predicate_to_string

### Included Modules

XMLTokens

### 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$/

### Public Instance methods

abbreviate( path )
expand( path )
namespaces=( namespaces )
parse(path)
predicate(path)
predicate_to_string( path ) {|path| ...}

[Validate]