解决方法
这里,//是descendant :: axis的等价物,因此它将返回作为上下文节点后代的所有@qty值.即:在这种情况下,没有给出上下文,因此它应该返回文档的所有值.
如果你有.//那么上下文将是当前节点,输出将是来自该节点的所有后代,而不是文档.
更新正如David正确指出的那样,这两个表达式并不完全等效,只是在功能上等同于您的问题.他注意到下面的微妙之处.但是,我想你会发现虽然在技术上//确实等同于descendant-or-self :: node():
//x == //descendant-or-self::node()/x
期望后代::使用//因为:
<x/>//* => () <x/>/descendant-or-self::* => <x/>
你不能简单地使用//没有东西来选择.因此,没有任何情况//实际上可以给你 – 或 – 自我部分.
/a/b// => {error}