xslt如何向copy-of添加属性

时间:2010-06-04 09:47:26

标签: xslt

我的XSLT文件中有以下代码:

<xsl:copy-of select="/root/Algemeen/foto/node()" />

在XML文件中,节点/root/Algemeen/foto/包含HTML图像,例如:&lt; img src =“somephoto.jpg”/&gt;

我想要做的是为图像添加固定宽度。但以下不起作用:

<xsl:copy-of select="/root/Algemeen/foto/node()">
    <xsl:attribute name="width">100</xsl:attribute>
</xsl:copy-of>

1 个答案:

答案 0 :(得分:46)

xsl:copy-of执行所选节点的深层副本,但不提供更改它的机会。

您将需要使用xsl:copy,然后在其中添加其他节点。 xsl:copy只复制节点和命名空间属性,但不复制常规属性和子节点,因此您需要确保apply-templates同时推送其他节点。 xsl:copy没有@select,它适用于当前节点,因此无论您在何处应用<xsl:copy-of select="/root/Algemeen/foto/node()" /> ,都需要更改为<xsl:apply-templates select="/root/Algemeen/foto/node()" />并移动{{} 1}}逻辑到模板中。

这样的事情:

img