/*/*/*
这将选择所有“顶部元素的孙子元素——它们是:c
, d
, c
, d
/*//*
这将选择顶部元素的所有后代元素:b
, c
, d
, b
, c
, d
, e
, f
/*/*//@*
这将选择顶部元素的子元素或其后代的所有属性:n
, o
, p
, n
, o
, p
, q
, r
, s
.
因此,产生的计数必须分别为:
4, 8, 9
基于XSLT的验证:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:value-of select="count(/*/*/*)"/>
=========
<xsl:value-of select="count(/*//*)"/>
=========
<xsl:value-of select="count(/*/*//@*)"/>
</xsl:template>
</xsl:stylesheet>
当对提供的 XML 文档执行此转换时(绝不,never出示带有图片的文档!!!):
<a m="1">
<b n="1" o="2">
<c p="3">3</c>
<d/>
</b>
<b n="1" o="2">
<c p="3">3</c>
<d q="3">
<e r="2">2</e>
</d>
</b>
<f s="1"/>
</a>
计算 Xpath 表达式并将其结果复制到输出:
4
=========
8
=========
9