0
我有以下XSL模板:XSLT的xsl:副本的xsl:for-各有关属性
<xsl:template match="@*|node()" mode="fix-entity-references">
<xsl:copy>
<xsl:for-each select="@*">
<xsl:if test="name() = 'href'">
<xsl:variable name="hrefvar">
<xsl:value-of select="current()"/>
</xsl:variable>
<xsl:attribute name="href">
anything
</xsl:attribute>
</xsl:if>
</xsl:for-each>
<xsl:apply-templates select="@*|node()" mode="fix-entity-references"/>
</xsl:copy>
</xsl:template>
我想用这个模板复制当前节点,但只能处理这一切后的属性。目前的样本非常简单,可以用一个非常简单的块代替。测试表达式会更加复杂,重点在于每个满足表达式的元素都可以有N个属性。这就是为什么每个都是必要的。我想以同样的方式处理所有这些属性。我试图打印“当前()”值,它始终正常工作。问题在于更新原始节点的属性。将“href”属性的值设置为“anything”是行不通的,因为我猜测在我调用它的时候,它位于for-each块内,这意味着当前节点是属性本身。
我应该如何在for-each块中设置原始块的属性,以便复制的节点将使用修改后的属性?
预先感谢您。
我喜欢它了很多先生谢谢! – 2013-03-08 11:52:01