如何让 xsl 只返回连字符右侧字段的一部分



我正在造船厂开发一个xsl模板。 我能够制作这个简单的代码来创建我可以使用的文本文件"选择列表"。


<!DOCTYPE xsl:stylesheet [ <!ENTITY nl "&#xd;&#xa;"> ]>
<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="ShipWorks2SystemCommon" />
<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"从该值中获取,并在最后一个字符之前切断所有内容。

在网上环顾四周时,我看到了最后一个子字符串函数。 我想知道我是否可以使用它? 我试着把它放在那里,但我认为我错过了一些关于声明或其他东西的东西。

代替

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

替换下面的代码。它应该工作,

<xsl:variable name="input">
        <xsl:value-of select="SKU" />
</xsl:variable>
<xsl:value-of select="replace($input,'^(.)+?(PRODUCTSKU)$','$2')"/>

相关内容

  • 没有找到相关文章

最新更新