Подсчитать в записях в xml с условием с использованием XSLT - PullRequest
0 голосов
/ 29 мая 2020

Привет. Я создаю файл XSLT для преобразования XML. Я хочу подсчитать записи с условием

<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>

Теперь я хочу подсчитать записи BankAccountTable, где ChequeStatus должен быть равен Payment, может ли кто-нибудь предложить, как этого добиться. Я использую Xsl: stylesheet version = "1.0". Я могу подсчитать все записи, используя эту строку кода:


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


, но я хочу это с условием. для следующего примера количество должно быть равно 2.

Любая помощь будет принята с благодарностью.

Спасибо

1 Ответ

0 голосов
/ 29 мая 2020

Вы можете подсчитать записи следующим образом:

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

Посмотрите, как это работает: https://xsltfiddle.liberty-development.net/naZYrpt

...