Go to main content

man pages section 3: Extended Library Functions, Volume 1

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

xmerl_xpath (3erl)

Name

xmerl_xpath - The xmerl_xpath module handles the entire XPath 1.0 spec.

Synopsis

Please see following description for synopsis

Description

xmerl_xpath(3)             Erlang Module Definition             xmerl_xpath(3)



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.28                   xmerl_xpath(3)