【问题标题】:Count in records in xml with condition using XSLT使用 XSLT 计算带有条件的 xml 中的记录
【发布时间】:2020-05-29 00:29:06
【问题描述】:

您好,我正在创建一个用于转换 XML 的 XSLT 文件。我想统计有条件的记录

<Body>
    <BankAccountTable class="entity">          
      <AccountNum>123456789</AccountNum>          
      <BankChequeTable class="entity">
        <AccountID>101</AccountID>
        <AmountCur>40.00</AmountCur>
        <ChequeStatus>Payment</ChequeStatus>            
        <VendTable class="entity">
          <AccountNum>1</AccountNum>              
        </VendTable>            
      </BankChequeTable>
      <BankChequeTable class="entity">
        <AccountID>101</AccountID>
        <AmountCur>45.00</AmountCur>            
        <ChequeStatus>Payment</ChequeStatus>            
        <VendTable class="entity">
          <AccountNum>2</AccountNum>              
        </VendTable>            
      </BankChequeTable>
      <BankChequeTable class="entity">
        <AccountID>101</AccountID>
        <AmountCur>45.00</AmountCur>            
        <ChequeStatus>Void</ChequeStatus>            
        <VendTable class="entity">
          <AccountNum>2</AccountNum>              
        </VendTable>            
      </BankChequeTable>          
    </BankAccountTable>

现在我想计算 ChequeStatus 必须等于 Payment 的 BankAccountTable 记录,任何人都可以建议如何实现这一点。我正在使用 Xsl:stylesheet version="1.0"。 我可以使用这行代码计算所有记录:


<xsl:for-each select="/BankAccountTable"> <xsl:variable name="totalCount" select="count(child::BankChequeTable)"></xsl:variable>


但我想要它有条件。对于以下示例,计数必须等于 2。

任何帮助将不胜感激。

谢谢

【问题讨论】:

    标签: xml xslt xslt-1.0


    【解决方案1】:

    你可以这样统计记录:

    <xsl:variable name="totalCount" select="count(Body/BankAccountTable/BankChequeTable[ChequeStatus='Payment'])"/>
    

    在这里查看它的工作原理:https://xsltfiddle.liberty-development.net/naZYrpt

    【讨论】:

      猜你喜欢
      • 2013-04-21
      • 2019-01-23
      • 1970-01-01
      • 2012-01-27
      • 2018-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多