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

XSLT循环无法获取对应Ref_ID的关联值问题求助

问题解决:XSLT循环中正确获取当前节点的属性值

问题根源

你代码里的//Attribute[@name = 'Title']用了绝对路径搜索(//代表从文档根节点开始遍历所有匹配节点),所以每次循环时,都会返回整个文档中第一个符合条件的Attribute节点值,而非当前EntityRef下的对应节点。

修正方案

将XPath改为相对当前上下文节点的路径,直接在当前EntityRef节点下查找Attribute,同时要获取Attribute子节点Value的文本内容(原代码直接选Attribute节点,实际需要的是其下Value的值)。

修正后的XSLT代码

<xsl:for-each select="$P_DataXMLRoot/WKIPreviewDataRoot/WKIUserSpecifiedAttributesRoot/EntityRef">
   <xsl:value-of select="Attribute[@name = 'Title']/Value" />
   <xsl:value-of select="Attribute[@name = 'Difficulty']/Value" />
</xsl:for-each>

代码解释

  • 去掉//,直接用Attribute[@name='xxx']:表示在当前循环的EntityRef节点下,查找对应的Attribute子节点
  • 追加/Value:获取Attribute节点下Value子节点的文本内容,这才是你需要的属性值

执行后,循环会依次输出每个EntityRef对应的属性值:

5 Low
 10 hight

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 06:48:20