我有以下XML结构,其中DIV2和DIV3在DIV1中。 当我的上下文是DIV2 / DIV3时,我想计算DIV1下*主题元素的数量。
所以在这里我想返回“2”,因为DIV1有2个元素(Atopic和Btopic)。 并返回“2”,因为当从DIV3使用时,DIV1有2个元素(Atopic和Btopic)。同样,DIV4的孩子应该返回“1”。
唯一的考虑因素是身体/分裂的孩子需要被计算而不是分裂/分裂
<body>
<division>
....DIV1....
<Atopic> .. </Atopic>
<Btopic> .. </Btopic>
<division>
.....DIV2..........
<Atopic> .. </Atopic>
<Btopic> .. </Btopic>
</division>
<division>
.....DIV3..........
<Atopic> .. </Atopic>
<Btopic> .. </Btopic>
</division>
</division>
<division>
....DIV4....
<Ctopic> .. </Ctopic>
</division>
<body>
请帮助通过xpath实现这一目标。
答案 0 :(得分:0)
唯一的考虑因素是身体/分裂的孩子需要 算了,而不是分裂/分裂
我认为会转化为:
<xsl:value-of select="count(ancestor::division[last()]/*[contains(name(), 'topic')])"/>