xmerl_xpath(3erl) Erlang Module Definition xmerl_xpath(3erl)
NAME
xmerl_xpath - The xmerl_xpath module handles the entire XPath 1.0 spec.
DESCRIPTION
The xmerl_xpath module handles the entire XPath 1.0 spec. XPath expres-
sions 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():
EXPORTS
string(Str, Doc) -> [docEntity()] | Scalar
Equivalent to string(Str, Doc, []).
string(Str, Doc, Options) -> [docEntity()] | Scalar
Equivalent to string(Str, Doc, [], Doc, Options).
string(Str, Node, Parents, Doc, Options) -> [docEntity()] | Scalar
Types:
Str = xPathString()
Node = nodeEntity()
Parents = parentList()
Doc = nodeEntity()
Options = option_list()
Scalar = #xmlObj{}
Extracts the nodes from the parsed XML tree according to XPath.
xmlObj is a record with fields type and value, where type is
boolean | number | string
AUTHORS
<>
xmerl 1.3.25 xmerl_xpath(3erl)