首先我要说的是,我不是 XML/XSLT 转换方面的专家。所以请耐心等待。我有以下 XML 结构。
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:Note>Some remark text</cbc:Note>
<cbc:Note>Charge: 1234567*</cbc:Note>
<cbc:Note>Quantity: 1000*</cbc:Note>
<cbc:Note>Charge: 987654*</cbc:Note>
<cbc:Note>Quantity: 5000*</cbc:Note>
...
</cac:InvoiceLine>
和是相连的。1234567的重量为 1000 公斤。现在我想循环遍历列表并在一行中打印所有相连的数据,例如Charge
:Quantity
Charge
Quantity
1000 公斤装料 1234567
5000 公斤装料 987654
我尝试了以下代码,但实际上此代码会为每个<cbc:Note>
字段打印一个新行。
<xsl:for-each select="./cbc:Note">
<xsl:choose>
<xsl:when test="contains(.,'Charge:')">
<xsl:value-of select="substring-before(substring-after(.,'Charge:'),'*')"/>
<br />
</xsl:when>
<xsl:when test="contains(.,'Menge:')">
<xsl:value-of select="substring-before(substring-after(.,'Quantity:'),'*')"/>
<br />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="."/>
<br />
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
有什么想法可以解决这个问题吗?
尝试类似以下操作:
您可以在此处看到它的工作原理。