xml – xslt中两个正斜杠的目的是什么? “//”

我在 XML类中,并具有以下代码行.

<xsl:value-of select="count(//@qty)" />

在qty属性之前“//”的目的是什么?它指的是什么?

解决方法

这里,//是descendant :: axis的等价物,因此它将返回作为上下文节点后代的所有@qty值.即:在这种情况下,没有给出上下文,因此它应该返回文档的所有值.

如果你有.//那么上下文将是当前节点,输出将是来自该节点的所有后代,而不是文档.

更新正如David正确指出的那样,这两个表达式并不完全等效,只是在功能上等同于您的问题.他注意到下面的微妙之处.但是,我想你会发现虽然在技术上//确实等同于descendant-or-self :: node():

//x == //descendant-or-self::node()/x

期望后代::使用//因为:

<x/>//* => ()
<x/>/descendant-or-self::* => <x/>

你不能简单地使用//没有东西来选择.因此,没有任何情况//实际上可以给你 – 或 – 自我部分.

/a/b// => {error}

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念