使用XSL否则在Google Merchant的价格分组中

时间:2014-04-08 17:31:08

标签: xml xslt

我们有一个XML Feed,使用此代码选择价格来显示Google Merchant的价格

   <g:price>
        <xsl:choose>
          <xsl:when test="number(saleprice)=0">
            <xsl:value-of select="format-number((price), '###0.00')" />
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="format-number((saleprice), '###0.00')" />
          </xsl:otherwise>
        </xsl:choose>
      </g:price>

然后他们问我是否可以修改Feed以将价格放入一个组中,所以我添加了这个

<xsl:choose>
   <xsl:when test="price &gt;= 0 and price &lt; 10">
      <g:custom_label_0>£0-10</g:custom_label_0>
   </xsl:when>
   <xsl:when test="price &gt;= 10 and price &lt; 25">
      <g:custom_label_1>£10-25</g:custom_label_1>
   </xsl:when>
   <xsl:when test="price &gt;= 25 and price &lt; 50">
      <g:custom_label_2>£25-50</g:custom_label_2>
   </xsl:when>
   <xsl:when test="price &gt;= 50 and price &lt; 100">
      <g:custom_label_3>£50-100</g:custom_label_3>
   </xsl:when>
   <xsl:when test="price &gt;= 100 and price &lt; 9999">
      <g:custom_label_4>£100+</g:custom_label_4>
   </xsl:when>
   <xsl:otherwise>
   </xsl:otherwise>
</xsl:choose>

如果产品具有销售价格,那么这将覆盖发送给谷歌的价格值。 xsl:otherwise标记在第二个块的末尾。我如何将其写入那个以将任何saleprice放入该值。我已经尝试过了

<xsl:when test="saleprice &gt;= 0 and saleprice &lt; 10">
<g:custom_label_0>£0-10</g:custom_label_0>

但没有运气。在过去没有真正使用xsl:otherwise

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

我相信这会做你想要的(虽然我怀疑它真的是你需要的):

<xsl:variable name="price">
    <xsl:choose>
        <xsl:when test="number(saleprice)">
            <xsl:value-of select="saleprice"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="price"/>
        </xsl:otherwise>
    </xsl:choose>
</xsl:variable>

<g:price>
    <xsl:value-of select="format-number($price, '0.00')" />
</g:price>

<xsl:choose>
    <xsl:when test="$price > 100">
        <g:custom_label_4>£100+</g:custom_label_4>
    </xsl:when>
    <xsl:when test="$price > 50">
        <g:custom_label_3>£50-100</g:custom_label_3>
    </xsl:when>
    <xsl:when test="$price > 25">
        <g:custom_label_2>£25-50</g:custom_label_2>
    </xsl:when>
    <xsl:when test="$price > 10">
        <g:custom_label_1>£10-25</g:custom_label_1>
    </xsl:when>
    <xsl:otherwise>
        <g:custom_label_0>£0-10</g:custom_label_0>
    </xsl:otherwise>
</xsl:choose>