导出csv,需要将客户邮政编码更改为大写。
我已尝试搜索答案并找到以下内容:
XSLT Stylesheet: Changing text to upper case
但这仅适用于已知值或其他什么?我的代码如下:
<xsl:variable name="sepstart" select="'"'"/> <!-- " field start seperator, including '' -->
<xsl:variable name="sepend" select="'",'"/> <!-- field end seperator, including '' -->
<xsl:template match="/">
<xsl:text>"eBay Username","Name","Postcode","Address","SKU","Samples Wanted","Order id"</xsl:text><xsl:text>
</xsl:text>
<xsl:for-each select="orders/order">
<xsl:value-of select="$sepstart" /><xsl:value-of select="$sepend" />
<xsl:value-of select="$sepstart" /><xsl:value-of select="concat(shipping/firstname,shipping/lastname)"/><xsl:value-of select="$sepend" />
<xsl:value-of select="$sepstart" /><xsl:value-of select="shipping/postcode"/><xsl:value-of select="$sepend" />
<xsl:value-of select="$sepstart" /><xsl:value-of select="concat(shipping/street1,', ',shipping/street2,', ',shipping/city)"/><xsl:value-of select="$sepend" />
<xsl:value-of select="$sepstart" />
<xsl:for-each select="items/item">
<xsl:value-of select="sku"/><xsl:text>
</xsl:text>
</xsl:for-each>
<xsl:value-of select="$sepend" />
<xsl:value-of select="$sepstart" />
<xsl:for-each select="items/item">
<xsl:value-of select="name"/><xsl:text>
</xsl:text>
</xsl:for-each>
<xsl:value-of select="$sepend" />
<xsl:value-of select="increment_id"/>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
</file>
</files>
邮政编码在这里:
<xsl:value-of select="shipping/postcode"/>
这可能吗?您也无法快速更改为excel中的大写,这是每日导出(我需要任何人能够执行此操作!)
答案 0 :(得分:0)
我也试过上面的解决方案,但我不知道怎么做到 工作
第1步:
将这两个变量放在样式表的顶部,在任何模板之外:
<xsl:variable name="lowercase" select="'abcdefghijklmnopqrstuvwxyz'" />
<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
第2步:
替换此部分:
<xsl:value-of select="shipping/postcode"/>
使用:
<xsl:value-of select="translate(shipping/postcode, $lowercase, $uppercase)"/>
第3步:
在此报告您的进度。
-
与您的问题无关,但看起来您的样式表可以通过一些精简来避免重复的部分 - 也许通过调用命名模板来创建“字段”?