我想出來的查找表的XSLT的樣本,我不能夠得到它的工作XSLT鍵()查找
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" />
<xsl:key name="classification-lookup" match="classification" use="id" />
<xsl:variable name="classification-top" select="document('')/*/classifications" />
<xsl:template match="BusinessListing">
<listing>
<id>
<xsl:value-of select="id" />
</id>
<xsl:apply-templates select="$classification-top">
<xsl:with-param name="curr-label" select="." />
</xsl:apply-templates>
</listing>
</xsl:template>
<xsl:template match="classifications">
<xsl:param name="curr-label" />
<category>
<xsl:value-of select="key('classification-lookup', $curr-label/listingData/classifications/classificationId)/description" />
</category>
</xsl:template>
<classifications>
<classification>
<id>7981</id>
<description>Category1</description>
</classification>
<classification>
<id>7982</id>
<description>Category2</description>
</classification>
<classification>
<id>7983</id>
<description>Category3</description>
</classification>
<classification>
<id>7984</id>
<description>Category4</description>
</classification>
</classifications>
</xsl:stylesheet>
和源如下所示。
<?xml version="1.0"?>
<BusinessListings>
<BusinessListing>
<id>1593469</id>
<listingData>
<classifications>
<classificationId>7982</classificationId>
<classificationId>7983</classificationId>
</classifications>
</listingData>
</BusinessListing>
</BusinessListings>
在下面的結果中,類別是空的,但我需要的分類ID從源到與在分類標籤的ID和所生成的類別相匹配。
<?xml version="1.0" encoding="UTF-8"?>
<listing>
<id>1593469</id> -- Empty I need the Category2 and Category3 here
<category/>
</listing>
我知道我可能是全關閉的標記,但我剛剛開始了與XSLT和這裏http://www.ibm.com/developerworks/xml/library/x-xsltip.html簡稱樣本。謝謝您的幫助 。
一些XML似乎是在樣式表..'<分類>'部分。它應該在XML文檔源中嗎? – 2011-06-13 12:29:46
好問題,+1。請參閱我的回答,瞭解您所遇到的一些問題以及完整解決方案。 :) – 2011-06-13 13:22:08