2014-03-18 91 views
0

我正在使用XSLT将图像元素从一个XML文件复制到新图像元素。我正在使用以下模板来复制图像元素,但我认为有一个更简单的方法来执行此操作。是否有更简单的方法来复制图像元素

...

<xsl:apply-templates select="art_id"/> 

...

<xsl:template match="art_id"><xsl:text> 
</xsl:text><image><art_id> 
<xsl:attribute name="href"><xsl:value-of select="@href"/></xsl:attribute> 
</art_id></image> 
</xsl:template> 

“新” 的XML图像元素是原始的精确副本。

回答

1

不知道是否有更简单的方法,但如果您使用属性值模板,你可以这样做:

<xsl:template match="art_id"> 
    <xsl:text> 
</xsl:text> 
    <image> 
     <art_id href="{@href}"/> 
    </image> 
</xsl:template> 
0

既然你说要建立一个“精确复制”,xsl:copy-of将是一种选择。

<xsl:template match="art_id"> 
    <xsl:text> 
</xsl:text> 
    <image> 
    <xsl:copy-of select="."/> 
    </image> 
</xsl:template> 
+0

不应该是''来复制属性吗? '''将复制文本() – PhillyNJ

+0

'select =“@ *”'将复制属性而不复制'art_id'元素。所以'image'会得到属性,这不是我看到OP所做的。由于OP说“完全复制”,我也没有看到复制'text()'的问题。 – Louis

相关问题