2010-05-12 56 views
1

是否有任何技巧匹配兩個XML一個XSLT?我的意思是我可以將XSLT應用於傳遞的參數。如何在XSLT中處理多個XML文檔?

例如(我錯過了聲明要簡短)。 XML1:XML進行改造:

<myData> 
    <Collection> 

    </Collection> 
</myData> 

XSLT需要應用到以前的XML:

<xsl:param name='items' /> 
<xsl:template match='Collection'> 
    <!-- some transformation here --> 
</xsl:template> 

XML2:作爲參數傳遞XML數據 '項':

<newData> 
    <Item>1</Item> 
    <Item>2</Item> 
    <Item>3</Item> 
</newData> 

我需要使用XSLT爲XML2中的每個'Item'元素在XML1的'Collection'節點中創建一組節點。而且我不知道在設計時XML2包含的是什麼。它是在運行時生成的,所以我不能將它放在XSLT中,我只知道它的模式。 (1)

回答

1

(1)。你可以生成XSLT的,而不是使用一個靜態XSLT:

變換XML2與xslt1這導致xslt2
與xslt2這導致所期望的輸出變換XML1

(2)。您可以使用document()函數來加載xml2。這需要將xml2保存到磁盤或通過URI訪問。

 <xsl:copy-of select="document('xml2.xml')//newData" /> 
+0

第二個變種更適合我,謝謝。 – 2010-05-13 07:57:19