我需要从输入文档复制到输出文档,除了一个属性。
我的输入是这样的:
<mylink id="nextButton" type="next" href="javascript:;" />
我需要这样的输出:
<a id="nextButton" href="javascript:;" />
如果我使用以下XSL:
<xsl:template match="mylink">
<a><xsl:copy-of select="attribute::*"/></a>
</xsl:template>
我将所有属性都像这样输出:
<a id="nextButton" type="next" href="javascript:;" />
但是我想忽略"type“属性。我尝试了以下方法,但似乎没有一种方法能像我所需要的那样工作:
<xsl:copy-of select="attribute::!type"/>
<xsl:copy-of select="attribute::!'type'"/>
<xsl:copy-of select="attribute::*[!type]"/>
<xsl:copy-of select="attribute::not(type)"/>
我应该如何编写样式表以获得所需的输出?
发布于 2009-03-23 11:06:21
最短形式:
<xsl:template match="mylink">
<a><xsl:copy-of select="@*[name()!='type']"/></a>
</xsl:template>
更长的一个(这是我想出来的第一件事,我把它留作参考):
<xsl:template match="mylink">
<a>
<xsl:for-each select="@*">
<xsl:if test="name() != 'type'">
<xsl:attribute name="{name()}"><xsl:value-of select="."/></xsl:attribute>
</xsl:if>
</xsl:for-each>
</a>
</xsl:template>
发布于 2017-06-28 15:37:48
在XSLT 2.0中:
<xsl:template match="mylink">
<a><xsl:copy-of select="@* except @type"/></a>
</xsl:template>
https://stackoverflow.com/questions/672935
复制相似问题