我需要能够计算兄弟元素有多少子节点。我需要根据下一个锚标记是否有任何子节点,将锚标记上的 CSS 类更改为“no_border”。
我到目前为止是这样的:
<xsl:for-each select="Menu/Item">
<li>
<a>
<xsl:attribute name="class">
<xsl:if test="following-sibling::Item/count(Menu/Item)">
no_border
</xsl:if>
</xsl:attribute>
<xsl:value-of select="ItemTitle />
</a>
</li>
</xsl:for-each>
Visual Studio 告诉我:
错误 1 预期的表达式结尾,发现 '('。following-sibling::Item/count -->(<-- Menu/Item) C:\Projects** \XmlFiles\xslt\SiteMap.xslt 78 74 C: \项目* *\
所以看起来我不能把“count()”命令放在“following-sibling”之后。
这是 XML 的示例:
<root>
<Item>
<Menu>
<Item>
... other sub-nodes
</Item>
</Menu>
</Item>
<Item>
<Menu>
<Item>
... other sub-nodes
</Item>
</Menu>
</Item>
</root>
编辑:我找到了解决方案:
<xsl:if test="count(following-sibling::Item/Menu/Item) = 0" >