以下是我的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
&amp; DistributionChannelCode
&amp; MaterialSalesText
位于本地命名空间下
SalesOrganisationID
&amp; DistributionChannelCode
处于标题级别
MaterialSalesText
位于Item
/ Product
级
Note
位于自己的名称空间下,位于Item
/ Product
级别。
Note
和material
根据条件重复多次,基于条件仍然只写第一个值。
答案 0 :(得分:0)
您确定使用的是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
值的(空格分隔)列表。< / p>