1

私はshipworksで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="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 は次のようになります。

BLAH-BLAH-PRODUCTSKU

その値から「PRODUCTSKU」のみを取得し、最後の文字の前にすべてを切り取る方法があるかどうか疑問に思っていました。

オンラインで見回すと、substring-after-last 関数が表示されました。私はそれを使用できるかどうか疑問に思っていますか?そこに入れてみたのですが、宣言とか何か抜けてる気がします。

4

1 に答える 1

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')"/>
于 2012-12-17T07:26:37.473 に答える