我正在使用shipworks中的xsl模板。我能够创建这个简单的代码来创建一个我可以使用的文本文件“选择列表”。
<!DOCTYPE xsl:stylesheet [ <!ENTITY nl "
"> ]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sw="http://www.interapptive.com/shipworks" extension-element-prefixes="sw">
<xsl:import href="ShipWorks2\System\Common" />
<xsl:output method="text" encoding="utf-8" />
<!-- -->
<!-- Start of processing -->
<!-- -->
<xsl:template match="/">
<xsl:for-each select="//Order/Item">
<xsl:sort order="descending" select="../Total" data-type="number" />
<xsl:sort order="descending" select="../Number" data-type="number" />
<xsl:value-of select="SKU" />,<xsl:value-of select="Quantity" /><xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
是的,我知道,真的很棒啊!?嘿,这让我永远走向正确!如您所见,它正在制作SKU列表。好吧,我的每个SKU都看起来像这样:
夸夸其谈-PRODUCTSKU
我想知道是否有办法从这个值中获取'PRODUCTSKU',并在最后一个字符之前切断所有内容。
在网上浏览时,我看到了post-after-last函数。我想知道我是否可以使用它?我试着把它放在那里,但我想我遗漏了关于声明或其他什么的东西。
答案 0 :(得分:0)
取代
<xsl:value-of select="SKU" />
替换以下代码。它应该工作,
<xsl:variable name="input">
<xsl:value-of select="SKU" />
</xsl:variable>
<xsl:value-of select="replace($input,'^(.)+?(PRODUCTSKU)$','$2')"/>