本地命名空间不会为 XSLT 映射选取多个值



下面是我的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都在本地命名空间下SalesOrganisationIDDistributionChannelCode处于标头级别MaterialSalesText处于Item/Product级别

Note位于自己的命名空间下,并且在Item/Product级别下。

Notematerial根据 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值的(空格分隔(列表。

相关内容

  • 没有找到相关文章

最新更新