如何使用xslt编码来分隔xml中的分隔值



在我们的应用程序中,我们使用xslt编码将输入xml转换为输出xml。我正在使用下面的代码。但它只是分隔分号前的第一个字段。同样,我想在输出xml中分离每个值,这样我就可以在所需的字段中添加尾随空格或前导零。SINO是我们的供应商编号,交付价值是其价值,如价格等。

如何分离每个值并在同一个xml标记中写入?

我的输入:

<UserArea>
<Property>
<NameValue name="SINO">852963;20210406;1520.00;1520.00;0.00;2789       852963        
2021 FAIRVIEW L</NameValue>
</Property>
<Property>
<NameValue name="SINO">TEST12345;20210406;1000.00;1000.00;0.00;2789       
TEST12345     2021 FAIRVIEW L</NameValue>
</Property>
</UserArea>

我正在尝试的XSLT代码是:

<xsl:for-each 
select="./*:CreditTransferPayment/*:PaymentTransaction/*:UserArea/*:Property/*:NameValue">
<FGIACHFlat>
<field1>
<xsl:value-of select="'D'" />
<xsl:call-template name="AddTrailingSpaces">
<xsl:with-param name="string" select="substring(substring-before(. 
[@name='SINO'],';'),1)" />
<xsl:with-param name="length" select="24" />
</xsl:call-template>
<xsl:value-of select="(substring-after(.[@name='SINO'],';'),';')" />
</field1>
</FGIACHFlat>
</xsl:for-each>

电流输出我是这样得到的,但不希望这样。

<FGIACHFlat> 
<field1>D852963 20210406;1520.00;1520.00;0.00;2789 852963 2021 FAIRVIEW L ;</field1> 
</FGIACHFlat> 
<FGIACHFlat> 
<field1>DTEST12345 20210406;1000.00;1000.00;0.00;2789 TEST12345 2021 FAIRVIEW L ;</field1> 
</FGIACHFlat>

我现在已经让它工作了。我使用的xslt代码是。<xsl:for-each-select=">:CreditTransferPayment/:PaymentTransaction/:UserArea/:Property/*:NameValue"gt;<xsl:variable name="字符串到拆分";select=";。[@name='SINO']"/><xsl:variable name="分离器";select=";'"><xsl:value-of-select="'D’"/><xsl:for-each-select="tokenize($stringToSplit,';'("gt;<xsl:value-of-select="quot/><xsl:for-each><xsl:call-template name="AddTrailingSpaces"><xsl:with-param name="长度";select=";40〃/><xsl:call-template><xsl:for-each>

我的输入是:852963;20210406;000000001520.00;000000001520.00;000000000000.00;2789 852963 2021美景L测试12345;20210406;000000001000.00;000000001000.00;000000000000.00;2789测试12345 2021美景L我得到的结果是:

D852963 20210406000000001520.00000000001520.0000000.002789 852963 2021 FAIRVIEW LDTEST12345 20210406000000001000.000000000001000.000000000000000.002789 TEST12345 2021 FAIRVIEW L我在应用程序中应用了一些逻辑,并通过xslt编码保留下来。我想通过xslt编码应用所有的逻辑,但我是xslt编码的新手。现在它对我有效。谢谢

最新更新