【发布时间】:2025-12-26 17:40:12
【问题描述】:
在我们的应用程序中,我们使用 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>
【问题讨论】:
-
当前输出我得到这种方式,但不想要这些方式。
D852963 20210406; 1520.00; 1520.00; 0.00; 2789 852963 2021 FAIRVIEW L; FIEFA1> FGIACHFLAT> DTEST12345 20210406; 1000.00; 1000.00; 0.00; 2789 TEST12345 2021 FAIRVIEW L; -
1.请不要在 cmets 中发布代码。编辑您的问题并添加预期结果。 2. 说明您将使用哪个 XSLT 处理器。
-
请给我们展示你想要的输出,同时展示函数
AddTrailingSpaces的代码。
标签: xslt