【问题标题】:xslt for-each statement displaying duplicatesxslt for-each 语句显示重复项
【发布时间】:2014-06-21 02:47:29
【问题描述】:

这是xml:

          <root>
            ...
            <payment-schedule>
              <loan>
                <l-number id='0'>00321-123456789-01</l-number>
                <financed id='0'>2500.0000</financed>
              </loan>
              <loan>
                <l-number id='1'>00321-123456789-02</l-number>
                <financed id='1'>3000.0000</financed>
              </loan>
            </payment-schedule>
          </root>

这是 xslt:

          <!--Repeating Rows Displays Loans-->
          <xsl:apply-templates select="loan"/>

          </xsl:template>

          <xsl:template match="loan">
            <xsl:for-each select="/root/payment-schedule/loan">
              <fo:table-row>
                <fo:table-cell border-right-style="solid" border-width="0.2mm" padding-left="2mm">
                </fo:table-cell>
                <fo:table-cell border-right-style="solid" border-width="0.2mm" padding-left="2mm">
                  <fo:block font-weight="bold">
                    <xsl:value-of select="l-number" />:  $<xsl:value-of select='format-number(financed, "#.00")'/>
                  </fo:block>
                </fo:table-cell>
              </fo:table-row>
            </xsl:for-each>
          </xsl:template>

这是输出:

00321-123456789-01:  $2500.00
00321-123456789-02:  $3500.00
00321-123456789-01:  $2500.00
00321-123456789-02:  $3500.00

我花了太多时间试图删除这些重复的节点。救命!!!!

【问题讨论】:

    标签: xml xslt xsl-fo


    【解决方案1】:

    您有一个为每个loan 触发一次的模板,并且在该模板中您再次对所有loan 元素执行for-each。删除for-each,您应该会得到您需要的结果。

     <xsl:template match="loan">
       <fo:table-row>
         <!-- ... -->
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-26
      • 1970-01-01
      • 2011-11-28
      相关资源
      最近更新 更多