You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XSLT中如何获取data_type='3'的首个匹配节点的Ref值

问题背景
  • 业务需求:从一批随机分布data_type属性(取值含0、2、3、4等)的元素中,获取*第一个data_type属性值为"3"*的元素对应的Ref值
  • 原有写法问题:使用如下XPath查询时,会返回所有data_type='3'节点对应的Ref值,无法返回单个目标值
<xsl:value-of select="/process/TransactionType/data_xml/transaction/sub_documents/transactionLine[@data_type='3']/Ref"/>
修改方法

在筛选完data_type='3'的transactionLine节点集后增加位置谓词[1]即可(XPath语法中节点位置索引从1开始计数),修改后的正确语句:

<xsl:value-of select="/process/TransactionType/data_xml/transaction/sub_documents/transactionLine[@data_type='3'][1]/Ref"/>

注意:不要将[1]错误添加到/Ref之后,该写法会取每一个匹配到的transactionLine节点下的第一个Ref子节点,只有当每个transactionLine下有且仅有一个Ref时才会巧合得到正确结果,逻辑上不符合取第一个符合属性要求的transactionLine对应值的需求。

内容的提问来源于stack exchange,提问作者HKmar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 10:18:19