导出csv文件,需要将客户邮编改为大写
我试着寻找答案,发现了以下内容:
XSLT样式表:将文本改为大写
但这只适用于已知值或其他东西?我的代码如下:
<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中快速更改为大写,这是一个日常导出(我需要任何人都能做到这一点!)
我也试过上面的解决方案,但我不知道如何得到它工作。
步骤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:
在这里报告你的进度。
,
与您的问题无关,但看起来您的样式表可以做一些简化以避免重复的部分—也许通过调用命名模板来创建"字段"?