chetheman
10-23-2009, 05:49 PM
Hi,
I'm looping thru SIZED_PRODUCT_ITEM and within the loop
I like to loop thru IMAGE_ITEM another child of PRODUCT
I think I'm suppose to use apply-templates BUT can't figure it out
Thanks
Below is some code code:
<?xml version="1.0"?>
<XML_CATALOG>
<PRODUCT>
<PRODUCTNUMBER>1000</PRODUCTNUMBER>
<PRODUCTNAME>Phospho-Histone</PRODUCTNAME>
<SIZED_PRODUCTS>
<SIZED_PRODUCT_ITEM>
<SIZED_PRODUCT_SKU>1000</SIZED_PRODUCT_SKU>
<SIZED_PRODUCT_LISTPRICE>75</SIZED_PRODUCT_LISTPRICE>
</SIZED_PRODUCT_ITEM>
</SIZED_PRODUCTS>
<IMAGES>
<IMAGE_ITEM>
<IMAGE_FIGURE_TYPE>Blotting</IMAGE_FIGURE_TYPE>
<IMAGE_CAPTION>blot analysis</IMAGE_CAPTION>
</IMAGE_ITEM>
<IMAGE_ITEM>
<IMAGE_FIGURE_TYPE>Paraffin</IMAGE_FIGURE_TYPE>
<IMAGE_CAPTION>analysis of human lung carcinoma</IMAGE_CAPTION>
</IMAGE_ITEM>
</IMAGES>
</PRODUCT>
</XML_CATALOG>
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="XML_CATALOG/PRODUCT">
<xsl:param name="p" />
<!-- loop thru IMAGES for PRODUCTNUMBER equal to param $p-->
<div id="IMAGE_FIGURE_TYPE"><xsl:value-of select="./IMAGE_FIGURE_TYPE"/></div>
<div id="IMAGE_CAPTION"><xsl:value-of select="./IMAGE_FIGURE_TYPE"/></div>
<!-- end loop-->
</xsl:template>
<xsl:template match="/">
<xsl:for-each select="./XML_CATALOG/PRODUCT/SIZED_PRODUCTS/SIZED_PRODUCT_ITEM">
<div id="product">
<div id="SIZED_PRODUCT_SKU">
<xsl:value-of select="./SIZED_PRODUCT_SKU"/>
</div>
<div id="PRODUCTNAME">
<xsl:value-of select="../../PRODUCTNAME"/>
</div>
<div id="SIZED_PRODUCT_LISTPRICE">
<xsl:value-of select="./SIZED_PRODUCT_LISTPRICE"/>
</div>
<div id="IMAGES">
<xsl:apply-templates select="XML_CATALOG/PRODUCT">
<xsl:with-param name="p" select="../../PRODUCTNUMBER" />
</xsl:apply-templates>
</div>
</div>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
I'm looping thru SIZED_PRODUCT_ITEM and within the loop
I like to loop thru IMAGE_ITEM another child of PRODUCT
I think I'm suppose to use apply-templates BUT can't figure it out
Thanks
Below is some code code:
<?xml version="1.0"?>
<XML_CATALOG>
<PRODUCT>
<PRODUCTNUMBER>1000</PRODUCTNUMBER>
<PRODUCTNAME>Phospho-Histone</PRODUCTNAME>
<SIZED_PRODUCTS>
<SIZED_PRODUCT_ITEM>
<SIZED_PRODUCT_SKU>1000</SIZED_PRODUCT_SKU>
<SIZED_PRODUCT_LISTPRICE>75</SIZED_PRODUCT_LISTPRICE>
</SIZED_PRODUCT_ITEM>
</SIZED_PRODUCTS>
<IMAGES>
<IMAGE_ITEM>
<IMAGE_FIGURE_TYPE>Blotting</IMAGE_FIGURE_TYPE>
<IMAGE_CAPTION>blot analysis</IMAGE_CAPTION>
</IMAGE_ITEM>
<IMAGE_ITEM>
<IMAGE_FIGURE_TYPE>Paraffin</IMAGE_FIGURE_TYPE>
<IMAGE_CAPTION>analysis of human lung carcinoma</IMAGE_CAPTION>
</IMAGE_ITEM>
</IMAGES>
</PRODUCT>
</XML_CATALOG>
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="XML_CATALOG/PRODUCT">
<xsl:param name="p" />
<!-- loop thru IMAGES for PRODUCTNUMBER equal to param $p-->
<div id="IMAGE_FIGURE_TYPE"><xsl:value-of select="./IMAGE_FIGURE_TYPE"/></div>
<div id="IMAGE_CAPTION"><xsl:value-of select="./IMAGE_FIGURE_TYPE"/></div>
<!-- end loop-->
</xsl:template>
<xsl:template match="/">
<xsl:for-each select="./XML_CATALOG/PRODUCT/SIZED_PRODUCTS/SIZED_PRODUCT_ITEM">
<div id="product">
<div id="SIZED_PRODUCT_SKU">
<xsl:value-of select="./SIZED_PRODUCT_SKU"/>
</div>
<div id="PRODUCTNAME">
<xsl:value-of select="../../PRODUCTNAME"/>
</div>
<div id="SIZED_PRODUCT_LISTPRICE">
<xsl:value-of select="./SIZED_PRODUCT_LISTPRICE"/>
</div>
<div id="IMAGES">
<xsl:apply-templates select="XML_CATALOG/PRODUCT">
<xsl:with-param name="p" select="../../PRODUCTNUMBER" />
</xsl:apply-templates>
</div>
</div>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>