我需要用width="<>"
替换独立属性height="<>"
和style="width:<>; height:<>;
。
典型输入如下
<img width="32pt" alt="PIC" class="graphics" height="32pt" src="images/about.png"/>
因此结果应为
<img style="width:32pt; height:32pt;" alt="PIC" class="graphics" src="images/about.png"/>
问题是我之前从未使用过xsl。
到目前为止,我所知道的是
这可以捕获img元素
<xsl:template match="xh:img">
这可以捕获width
属性
<xsl:template match="@width">
我知道如何添加属性或元素。
但我不知道如何存储width
和height
的值,并将它们写在一行中。
任何帮助,将不胜感激。
答案 0 :(得分:1)
您可以使用:
<xsl:template match="img">
<img style="width:{@width}; height:{@height};">
<xsl:copy-of select="@*[not(name()='width' or name()='height')]"/>
</img>
</xsl:template>
这假设每个img
都有width
和height
属性,并且没有子节点。如果您的源XML将img
元素放在命名空间中(未在您的问题中显示),请将相应的前缀添加到模板的匹配模式中。
供参考,请参阅:https://www.w3.org/TR/xslt/#attribute-value-templates
答案 1 :(得分:0)
您(或其他读者)可能对从生产样式表中获取的这种更通用(XSLT 2.0)解决方案感兴趣:
changeCaption("Beautiful Flowers");