我的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>
答案 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