我有以下XML:通過xslt屬性值合併2個或更多xml?
<PCstore>
<StoreList>
<Store id="001">
<ItemList>
<Items laptop="DELL" price="300"/>
<Items laptop="gateway" price="450"/>
<Items screen="LG" price="200"/>
</ItemList>
</Store>
</StoreList>
</PCstore>
我有合併:
<PCstore>
<StoreList>
<Store id="002">
<ItemList>
<Items laptop="gateway" price="650"/>
<Items screen="LG" price="200/>
<Items speakers="sony" price="50"/>
</ItemList>
</Store>
</StoreList>
</PCstore>
的願望輸出ifiltering屬性(筆記本= 「網關」):
<PCstore>
<StoreList>
<Store id="001">
<ItemList>
<Items laptop="gateway" price="450"/>
</ItemList>
</Store>
<Store id="002">
<ItemList>
<Items laptop="gateway" price="650"/>
</ItemList>
</Store>
</StoreList>
</PCstore>
等等更多xml3.xml,xml4.xml 等...
我沒有我嘗試過的代碼,我在XSLT上有點新,我希望有人能幫助我。
UPDATE:
我嘗試這樣的代碼,但它不工作...
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="Items">
<xsl:copy>
<xsl:apply-templates select="@* | node()" />
<xsl:apply-templates
select="document('xml2.xml')
/PCstore/StoreList/Store/ItemList[@id = current()/../@id]
/Items[@laptop = current()/@value]/*" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
是文件的數量將被限制到某個數字,還是會有無限數量?另外,任何不同的文件是否包含相同的商店ID?如果是這樣,你會在這種情況下發生什麼? – 2013-03-16 14:59:08
它不應該有相同的商店。 對於限制,可以說我將有大約20 xmls,我必須合併,但如果我可以得到至少2 xmls合併將是偉大的,我猜我只需要應用相同的xsl輸出和一個新的XML。 謝謝 – 2013-03-16 18:46:07