.net 如何使用XSLT-count获取XML中的节点计数

eh57zj3b  于 2023-01-31  发布在  .NET
关注(0)|答案(1)|浏览(97)

我是新的XML操作,我使用XSLT文件,因为我需要得到的节点计数只有在情况下,当StatusCode =“N”,请帮助我,我在这里做的错误。

这是我的XML:

<List>
  <LockingTS>aj8s=</AccountLockingTS>
  <Id>10113</AccountId>
  <Records>
    <Record>
      <Direction>123876871</Direction>
      <EntryDate>2023-01-28T00:00:00</EntryDate>
      <PaymentMethod>1EFT</PaymentMethod>
      <StatusCode>N</StatusCode>
      <CurrencyCode>USD</CurrencyCode>
    </Record>
  </Records>
</List>

这是我尝试过的方法:“计数(//列表/记录/记录/状态代码='N')〉0”

<xsl:if test="count(//List/Records/Record/StatusCode='N')&gt;0">

但它向我显示错误消息:-

Argument 1 of function 'count()' cannot be converted to a node-set. --&gt;count(//List...StatusCode='N')&lt;-- &gt;0</error>
mnemlml8

mnemlml81#

我们首先修复XML;LockingTSId标记未正确结束。

<List>
  <LockingTS>aj8s=</LockingTS>
  <Id>10113</Id>
  <Records>
    <Record>
      <Direction>123876871</Direction>
      <EntryDate>2023-01-28T00:00:00</EntryDate>
      <PaymentMethod>1EFT</PaymentMethod>
      <StatusCode>N</StatusCode>
      <CurrencyCode>USD</CurrencyCode>
    </Record>
  </Records>
</List>

关于count的声明。
筛选器的定义不正确;必须放在方括号内。

//List/Records/Record[StatusCode='N']

xsl:if看起来如下所示。

<xsl:if test="count(//List/Records/Record[StatusCode='N']) &gt; 0">

相关问题