XML需要更改导入数据的大小写

时间:2014-08-11 14:54:47

标签: xml xslt-1.0

导出csv,需要将客户邮政编码更改为大写。

我已尝试搜索答案并找到以下内容:

XSLT Stylesheet: Changing text to upper case

但这仅适用于已知值或其他什么?我的代码如下:

                       

<xsl:variable name="sepstart" select="'&#34;'"/> <!-- &#34; field start seperator, including '' -->
<xsl:variable name="sepend" select="'&#34;,'"/> <!-- field end seperator, including '' -->

<xsl:template match="/">
<xsl:text>"eBay Username","Name","Postcode","Address","SKU","Samples Wanted","Order id"</xsl:text><xsl:text>&#xA;</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>&#xA;</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>&#xA;</xsl:text>
</xsl:for-each>
<xsl:value-of select="$sepend" />


<xsl:value-of select="increment_id"/>


<xsl:text>&#xA;</xsl:text>


</xsl:for-each>
</xsl:template>

</xsl:stylesheet>
</file>
</files>

邮政编码在这里:

<xsl:value-of select="shipping/postcode"/>

这可能吗?您也无法快速更改为excel中的大写,这是每日导出(我需要任何人能够执行此操作!)

1 个答案:

答案 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步:

在此报告您的进度。

-
与您的问题无关,但看起来您的样式表可以通过一些精简来避免重复的部分 - 也许通过调用命名模板来创建“字段”?