查看源码 xmerl_xpath (xmerl v2.1)

XPath 1.0 搜索实现。

xmerl_xpath 模块处理整个 XPath 1.0 规范。XPath 表达式通常出现在 XML 属性中,用于寻址 XML 文档的各个部分。语法定义在 xmerl_xpath_parse.yrl 中。核心函数定义在 xmerl_xpath_pred.erl 中。

一些用于调试 XPath 解析器的有用 shell 命令

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

概要

类型

用于自定义 XPath 扫描器行为的选项。

类型

链接到此类型

nodeEntity()

查看源码 (未导出)
链接到此类型

option_list()

查看源码 (未导出)
-type option_list() :: [{atom(), term()}].

用于自定义 XPath 扫描器行为的选项。

可能的选项是

{namespace, #xmlNamespace}
在 xmlContext 中设置来自 XmlNamspace 的命名空间节点
{namespace, Nodes}
在 xmlContext 中设置命名空间节点。
链接到此类型

parentList()

查看源码 (未导出)
-type parentList() :: [{atom(), integer()}].
链接到此类型

xPathString()

查看源码 (未导出)
-type xPathString() :: string().

函数

-spec string(String, Doc) -> _ when String :: xPathString(), Doc :: nodeEntity().

等价于 string(String, Doc, [], Doc, [])

链接到此函数

string(String, Doc, Options)

查看源码
-spec string(String, Doc, Options) -> _
                when String :: xPathString(), Doc :: nodeEntity(), Options :: option_list().

等价于 string(String, Doc, [], Doc, Options)

链接到此函数

string(String, Node, Parents, Doc, Options)

查看源码
-spec string(String, Node, Parents, Doc, Options) -> [nodeEntity()] | Scalar
                when
                    String :: xPathString(),
                    Node :: nodeEntity(),
                    Parents :: parentList(),
                    Doc :: nodeEntity(),
                    Options :: option_list(),
                    Scalar :: #xmlObj{type :: term(), value :: term()}.

从解析的 XML 树中提取节点。

根据 XPath String 从解析的 XML 树中提取节点。

Scalar 是一个 #xmlObj{} 记录,具有字段 typevalue,其中 #xmlObj.typeboolean | number | string