# xmerl_xpath

### MODULE

xmerl_xpath

### MODULE SUMMARY

The xmerl_xpath module handles the entire XPath 1.0 spec XPath expressions typically occurs in XML attributes and are used to addres parts of an XML document.

### DESCRIPTION

The xmerl_xpath module handles the entire XPath 1.0 spec XPath expressions typically occurs in XML attributes and are used to addres parts of an XML document. The grammar is defined in `xmerl_xpath_parse.yrl`. The core functions are defined in `xmerl_xpath_pred.erl`.

Some useful shell commands for debugging the XPath parser

     c(xmerl_xpath_scan).
     yecc:yecc("xmerl_xpath_parse.yrl", "xmerl_xpath_parse", true, []).
     c(xmerl_xpath_parse).

     xmerl_xpath_parse:parse(xmerl_xpath_scan:tokens("position() > -1")).
     xmerl_xpath_parse:parse(xmerl_xpath_scan:tokens("5 * 6 div 2")).
     xmerl_xpath_parse:parse(xmerl_xpath_scan:tokens("5 + 6 mod 2")).
     xmerl_xpath_parse:parse(xmerl_xpath_scan:tokens("5 * 6")).
     xmerl_xpath_parse:parse(xmerl_xpath_scan:tokens("-----6")).
     xmerl_xpath_parse:parse(xmerl_xpath_scan:tokens("parent::node()")).
     xmerl_xpath_parse:parse(xmerl_xpath_scan:tokens("descendant-or-self::node()")).
     xmerl_xpath_parse:parse(xmerl_xpath_scan:tokens("parent::processing-instruction('foo')")).

### DATA TYPES

`docEntity() = xmlElement() | xmlAttribute() | xmlText() | xmlPI() | xmlComment()`
`nodeEntity() = xmlElement() | xmlAttribute() | xmlText() | xmlPI() | xmlNamespace() | xmlDocument()`
`option_list()`
  Options allows to customize the behaviour of the XPath scanner.
  Possible options are:
  `{namespace, #xmlNamespace}`
    Set namespace nodes, from XmlNamspace, in xmlContext
  `{namespace, Nodes}`
    Set namespace nodes in xmlContext.

### EXPORTS

`string(Str, Doc) -> docEntity()`

Equivalent to string(Str, Doc, []).

`string(Str, Doc, Options) -> docEntity()`

Equivalent to string(Str, Doc, [], Doc, Options).

`string(Str, Node, Parents, Doc, Options) -> docEntity()`

Types:

`Str = xPathString()`
`Node = nodeEntity()`
`Parents = parentList()`
`Doc = nodeEntity()`
`Options = option_list()`

Extracts the nodes from the parsed XML tree according to XPath.

### AUTHORS

- support@erlang.ericsson.se

xmerl 1.1
Copyright © 1991-2007 Ericsson AB