xmerl_xpath
Module
xmerl_xpath
Module Summary
The xmerl_xpath module handles the entire XPath 1.0 spec.
Description
The xmerl_xpath module handles the entire XPath 1.0 spec. XPath expressions typically occur in XML attributes and are used to address 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() = #xmlDocument{} | [docNodes()]
- docNodes() = #xmlElement{} | #xmlAttribute{} | #xmlText{} | #xmlPI{} | #xmlComment{} | #xmlNsNode{}
- nodeEntity() = #xmlElement{} | #xmlAttribute{} | #xmlText{} | #xmlPI{} | #xmlComment{} | #xmlNsNode{} | #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.
- parentList() = [{atom(), integer()}]
- xPathString() = string()
Equivalent to string(Str, Doc, []).
Equivalent to string(Str, Doc, [], Doc, Options).
Types
Str = xPathString()
Node = nodeEntity()
Parents = parentList()
Doc = nodeEntity()
Options = option_list()
Scalar = #xmlObj{}