【发布时间】:2010-03-21 06:18:24
【问题描述】:
我有一个看起来像这样的文档
<root>
<element>
<subelement1 />
<subelement2 />
</element>
<element>
<subelement2 />
<subelement1 />
</element>
</root>
在/element[2]/[someNode] 上下文中的我的XSLT 工作表中,我想获得一个表示/element[1]/[someNode] 距离的数字(即/element1/[someNode] 的前面兄弟姐妹的数量)。例如,在/element[2]/subelement1 的上下文中,我想有一些方法来获得数字2,即从/element[1] 到/element[1]/subelement2 的距离。我只需要给定节点名称与<element> 的第一个实例的距离。
直觉上我认为我可以像这样构造它
<xsl:variable name="nodename" select="name()" />
<xsl:value-of select="/element[1]/$nodename/preceding-sibling::*" />
但不幸的是,此工作表无法编译。我想要在 XSLT 中实现的目标是否可行?
【问题讨论】:
-
您的示例似乎不一致:在
/element[2]/[someNode]的上下文中,您想找到/element[1]/[someNode]与/element[2]/subelement1中的示例一样,您想找到从/element[1]到/element[1]/subelement2的距离 - 所以[someNode] 这里是 subelement2 还是 subelement1?