下面是我的xsl文件,基于条件MaterialSalesText只选择第一个值。
<xsl:element name="DMI">
<xsl:element name="D_808">F</xsl:element>
<xsl:element name="S_723">
<xsl:element name="D_801_7">
<xsl:choose>
<xsl:when test="../*[local-name()='SalesOrganisationID']='FAB' and ../*[local-name()='DistributionChannelCode']='SF'">
<xsl:value-of select="..//*[local-name()='MaterialSalesText']"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="Product/Note"/>
</xsl:otherwise>
</xsl:choose>
SalesOrganisationID
&DistributionChannelCode
&MaterialSalesText
都在本地命名空间下SalesOrganisationID
和DistributionChannelCode
处于标头级别MaterialSalesText
处于Item
/Product
级别
Note
位于自己的命名空间下,并且在Item
/Product
级别下。
Note
和material
根据 Item 多次重复,根据条件,它仍然只写入第一个值。
您确定使用的是 XSLT 2 或 3 处理器,并且已将样式表上的version
属性设置为<xsl:stylesheet version="2.0" ...>
?如果在向后兼容模式下使用 XSLT 1 处理器或 XSLT 2 或 3 处理器(在代码中使用version="1.0"
即可获得(,则任何xsl:value-of select="foo"
都仅输出第一个选定foo
元素的字符串值。
只有使用 XSLT 2 或 3 处理器和代码中的正确version
编号,xsl:value-of select="foo"
才应该输出所有foo
值的(空格分隔(列表。