logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

Authors

<>

                                                  xmerl 1.3.28                                 xmerl_xpath(3erl)

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():

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')")).

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

Name

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

See Also