xmerl_xpath

xmerl_xpath

模块

xmerl_xpath

模块摘要

木乃伊[医]XPath模块处理整个XPath 1.0规范。

描述

木乃伊[医]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')")).

数据类型

docEntity()= #xmlDocument {} | [ docNodes()] docNodes()= #xmlElement {} | #xmlAttribute {} | #xmlText {} | #xmlPI {} | #xmlComment {} | #xmlNsNode {} nodeEntity()= #xmlElement {} | #xmlAttribute {} | #xmlText {} | #xmlPI {} | #xmlComment {} | #xmlNsNode {} | #xmlDocument {} option_list()

选项允许自定义XPath扫描器的行为。

可能的备选办法是:

{namespace, #xmlNamespace}

在xmlContext中设置XmlNamspace中的命名空间节点

{namespace, Nodes}

在xmlContext中设置命名空间节点。

parentList()= {atom(),integer()} xPathString()= string()

出口

string(Str, Doc) -> [docEntity()] | Scalar

相当于string(Str, Doc, [])

string(Str, Doc, Options) -> [docEntity()] | Scalar

相当于string(Str, Doc, [], Doc, Options)

string(Str, Node, Parents, Doc, Options) -> [docEntity()] | Scalar

类型

根据XPath从解析的XML树中提取节点。xmlObj是一个包含字段类型和值的记录,其中类型是布尔数字字符串。