<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"><xsl:output method="xml" indent="yes"/><xsl:template match="Catalog"><xsl:for-each select="./Category">INSERT INTO marketplace_tmp (category, subcategory, id, title, description, popularityrank, hasrecurringproducts, gravity, earnedpersale, percentpersale, totalearningspersale, totalrebillamt, referred, commission) VALUES<xsl:variable name='constCategoryName' select="./Name"/><xsl:for-each select="./Site"><xsl:call-template name="tplSite"><xsl:with-param name="categoryName"><xsl:value-of select="$constCategoryName"/></xsl:with-param><xsl:with-param name="subcategoryName"></xsl:with-param></xsl:call-template><xsl:if test="position()!=last()"><xsl:text>, </xsl:text></xsl:if></xsl:for-each>;<xsl:for-each select="./Category">INSERT INTO marketplace_tmp (category, subcategory, id, title, description, popularityrank, hasrecurringproducts, gravity, earnedpersale, percentpersale, totalearningspersale, totalrebillamt, referred, commission) VALUES<xsl:variable name='constSubcategoryName' select="./Name"/><xsl:for-each select="./Site"><xsl:call-template name="tplSite"><xsl:with-param name="categoryName"><xsl:value-of select="$constCategoryName"/></xsl:with-param><xsl:with-param name="subcategoryName"><xsl:value-of select="$constSubcategoryName"/></xsl:with-param></xsl:call-template><xsl:if test="position()!=last()"><xsl:text>, </xsl:text></xsl:if></xsl:for-each>;</xsl:for-each></xsl:for-each></xsl:template><xsl:template name="tplSite"><xsl:param name="categoryName"/><xsl:param name="subcategoryName"/>('<xsl:call-template name="tplDoubleSingleQuotes"><xsl:with-param name="text" select="$categoryName"/> </xsl:call-template>',  '<xsl:call-template name="tplDoubleSingleQuotes"><xsl:with-param name="text" select="$subcategoryName"/> </xsl:call-template>',  '<xsl:value-of select="./Id"/>', '<xsl:call-template name="tplDoubleSingleQuotes"><xsl:with-param name="text" select="./Title"/> </xsl:call-template>',  '<xsl:call-template name="tplDoubleSingleQuotes"><xsl:with-param name="text" select="./Description"/> </xsl:call-template>',  <xsl:value-of select="./PopularityRank"/>, <xsl:value-of select="./HasRecurringProducts"/>,  <xsl:call-template name="tplNumber"><xsl:with-param name="elementValue"><xsl:value-of select="./Gravity"/></xsl:with-param> </xsl:call-template>,  <xsl:call-template name="tplNumber"><xsl:with-param name="elementValue"><xsl:value-of select="./EarnedPerSale"/></xsl:with-param> </xsl:call-template>,  <xsl:call-template name="tplNumber"><xsl:with-param name="elementValue"><xsl:value-of select="./PercentPerSale"/></xsl:with-param> </xsl:call-template>,  <xsl:call-template name="tplNumber"><xsl:with-param name="elementValue"><xsl:value-of select="./TotalEarningsPerSale"/></xsl:with-param> </xsl:call-template>,  <xsl:call-template name="tplNumber"><xsl:with-param name="elementValue"><xsl:value-of select="./TotalRebillAmt"/></xsl:with-param> </xsl:call-template>,  <xsl:call-template name="tplNumber"><xsl:with-param name="elementValue"><xsl:value-of select="./Referred"/></xsl:with-param> </xsl:call-template>,  <xsl:call-template name="tplNumber"><xsl:with-param name="elementValue"><xsl:value-of select="./Commission"/></xsl:with-param> </xsl:call-template> )</xsl:template><xsl:template name="tplNumber"><xsl:param name="elementValue"/><xsl:if test="not(string($elementValue))"><xsl:value-of select="0"/>  </xsl:if><xsl:value-of select="$elementValue"/></xsl:template><xsl:template name="tplReplaceString">  <xsl:param name="text"/>  <xsl:param name="replace"/>  <xsl:param name="with"/>  <xsl:choose>    <xsl:when test="contains($text,$replace)">      <xsl:value-of select="substring-before($text,$replace)"/>      <xsl:value-of select="$with"/>      <xsl:call-template name="tplReplaceString">        <xsl:with-param name="text" select="substring-after($text,$replace)"/>          <xsl:with-param name="replace" select="$replace"/>          <xsl:with-param name="with" select="$with"/>        </xsl:call-template>    </xsl:when>    <xsl:otherwise>      <xsl:value-of select="$text"/>    </xsl:otherwise>  </xsl:choose></xsl:template><xsl:template name="tplDoubleSingleQuotes"><xsl:param name="text"/><xsl:call-template name="tplReplaceString"><xsl:with-param name="text" select="$text"/><xsl:with-param name="replace">'</xsl:with-param><xsl:with-param name="with">''</xsl:with-param></xsl:call-template></xsl:template></xsl:stylesheet>