加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml – 如何在使用xslt进行元素求和期间处理空元素

发布时间:2020-12-15 23:55:47 所属栏目:百科 来源:网络整理
导读:LIST_R7P1_1 R7P1_1 ORIG_EXP_PRE_CONV / EXP_AFT_CONV 34EXP_AFT_CONV / GUARANTEE_AMOUNT / CREDIT_DER / /R7P1_1/LIST_R7P1_1totalxsl:value-of select="LIST_R7P1_1/R7P1_1/ORIG_EXP_PRE_CONV + LIST_R7P1_1/R7P1_1/EXP_AFT_CONV + LIST_R7P1_1/R7P1_1/G
<LIST_R7P1_1>
 <R7P1_1> 
 <ORIG_EXP_PRE_CONV /> 
  <EXP_AFT_CONV >34<EXP_AFT_CONV />
  <GUARANTEE_AMOUNT /> 
  <CREDIT_DER /> 
 </R7P1_1>
</LIST_R7P1_1>


<total><xsl:value-of select="LIST_R7P1_1/R7P1_1/ORIG_EXP_PRE_CONV + LIST_R7P1_1/R7P1_1/EXP_AFT_CONV + LIST_R7P1_1/R7P1_1/GUARANTEE_AMOUNT + LIST_R7P1_1/R7P1_1/CREDIT_DER"/></total>

总的来说,由于像 ,< ORIG_EXP_PRE_CONV />这样的空元素,我得到空值.等等.

如何处理,以便我可以获得数值

请建议

这是一个小例子,其中@DevNull答案中的技巧无济于事:
<a>
 <b>5</b>
 <c>
  <d></d>
  <e>1</e>
  <f>2</f>
 </c>
</a>

我们想要:/ a / c / d / a / c / f

为了保证我们得到总和,虽然其中一些可能是空的或不是数字,但使用:

sum((/a/c/d|/a/c/f)[number(.) = number(.)])

说明:

XPath表达式:(/ a / c / d | / a / c / f)[number(.)= number(.)]

仅选择所有联合节点的值,其值为数字.因此,sum()函数将仅提供数字参数,不会产生NaN.

表达式编号(.)=数字(.)仅在为时才为真.是一个数字.

在这里我们使用那个数字(somethingNon-Number)是NaN

NaN不等于任何东西,甚至对NaN也不等.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读