我正在尝试使用当前节点属性作为值来匹配我的xml中的名称。 xml节点与句柄名称相同。有多个节点具有与句柄对应的不同名称。
由于它涉及许多不同名称的不同节点,我不想写一个大量的选择语句。请查看apply-template
内的xpath - 它不起作用,但有没有办法做这样的事情?
<xsl:for-each select="data/navigation/page">
<xsl:element name="{@handle}">
<xsl:attribute name="id"><xsl:value-of select="current()/@id"/></xsl:attribute>
<xsl:value-of select="name"/>
<xsl:apply-templates select="/data/[current()/@handle]" mode="page"/>
</xsl:element>
</xsl:for-each>
答案 0 :(得分:3)
<xsl:apply-templates select="/data/[current()/@handle]" mode="page"/>
这在语法上是非法的 - 位置步骤不能以谓词开头。
可能你想要这样的东西:
<xsl:apply-templates select="/data/*[name()=current()/@handle]" mode="page"/>