我正在尝试使用当前节点属性作为值来与xml中的名称进行匹配。 xml节点与句柄同名。有多个具有不同名称的节点对应于该句柄。
由于它遍历具有不同名称的许多不同节点,因此我不想编写大量的select语句。请查看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>
最佳答案
<xsl:apply-templates select="/data/[current()/@handle]" mode="page"/>
从语法上讲这是非法的-定位步骤不能以谓词开头。
可能您想要这样的东西:
<xsl:apply-templates select="/data/*[name()=current()/@handle]" mode="page"/>
关于xml - 在XSLT中,我可以使用当前节点属性作为动态值来应用模板吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14179252/