【问题标题】:XPath query to match no valueXPath 查询不匹配任何值
【发布时间】:2015-07-20 16:29:37
【问题描述】:

XPATH 是否提供始终不返回值的查询?

例如,给定这个简单的 XML:

<foo>
    <bar>hello, world</bar>
</foo>

//noelement 类型的 XPATH 查询显然不会返回任何元素,这很好,但感觉就像是 hack。

我想知道规范是否规定了一个永远不会匹配任何元素的保留值。像 //NIL 这样的东西是一个有效的 XPATH 查询,同时永远不会匹配任何元素。

【问题讨论】:

    标签: xml xpath


    【解决方案1】:

    James Clark(XPath 1.0 编辑器)wrote

    Re:关于空节点集初始化的最佳实践

    我喜欢“/..”。我们确实考虑过添加一个函数来返回一个空的节点集, 但它并没有真正看到通过“../”购买任何东西。

    当然,他邮件中的第二个 xpath 表达式是一个错字。

    因此,如果您想编写经典代码,请使用“/..”:根据定义,根节点的父节点不存在。好的 XPath 引擎应该能够识别这个表达式并将其优化为一个空的节点集。

    【讨论】:

    • 确实 lxml.etree (我正在使用的 Python 解析器)似乎将其识别为空节点集。有趣的概念。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-20
    相关资源
    最近更新 更多