2010-05-12 96 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