2015-11-25 59 views
0

我正在嘗試做一些XML數據遷移,將xml文檔從一個模式遷移到另一個更新的版本。這些變化並不是很大,所以我想知道是否有一種簡單的方法可以讓xslt僅部分地轉換xml。例如只重命名元素名稱等。如何使用xslt部分轉換xml?

+0

本質上講,這被應答[這裏](http://stackoverflow.com/questions/18617404/xslt-copy-whole-xml-document-discarding-specific-parent-nodes)。 –

回答

1

XSLT獲取輸入文檔並創建新的輸出文檔。至於做小的更改,是的,請使用標識轉換模板啓動您的樣式表,併爲更改添加更多特定模板。

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 

<!-- identity transformation template --> 
<xsl:template match="@* | node()"> 
    <xsl:copy> 
    <xsl:apply-templates select="@* | node()"/> 
    </xsl:copy> 
</xsl:template> 

<!-- rename foo to bar elements --> 
<xsl:template match="foo"> 
    <bar> 
    <xsl:apply-templates select="@* | node()"/> 
    </bar> 
</xsl:template> 

</xsl:stylesheet> 
+1

如果您使用的是XSLT 2.0並獲得了涉及重命名單個元素的許多規則(並且沒有其他更改),則可以進一步在全局變量中定義映射,並編寫處理所有元素的模板。 – biziclop