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

XSLT过滤Is_Evergreen非0的Report_Entry失败求助

XSLT过滤wd:Report_Entry节点的正确实现

错误原因分析

你用的../wd:Job_Requisition_group/wd:Is_Evergreen = '0'路径逻辑错误:

  • 当你在<xsl:for-each select="wd:Report_Entry">内部时,当前节点是<wd:Report_Entry>,../指向的是当前节点的父节点,而非<wd:Report_Entry>自身的子节点。如果<wd:Job_Requisition_group>是<wd:Report_Entry>的子节点,这个路径会跳出到父节点去查找,自然匹配不到目标节点,导致条件永远不成立,所以没有输出。

正确实现方法

方法1:直接在for-each的select中过滤(推荐)

把过滤条件整合到for-each的节点选择逻辑里,只遍历符合条件的<wd:Report_Entry>,效率更高:

<xsl:for-each select="wd:Report_Entry[wd:Job_Requisition_group/wd:Is_Evergreen = '0']">
  <!-- 你的原有输出逻辑 -->
</xsl:for-each>

方法2:在for-each内部用xsl:if判断

如果一定要保留原来的for-each结构,修正路径即可(去掉../,直接从当前<wd:Report_Entry>节点下查找子节点):

<xsl:for-each select="wd:Report_Entry">
  <xsl:if test="wd:Job_Requisition_group/wd:Is_Evergreen = '0'">
    <!-- 你的原有输出逻辑 -->
  </xsl:if>
</xsl:for-each>

额外注意点

确保你的XSLT代码中已经正确声明了wd命名空间,比如在<xsl:stylesheet>标签里添加类似这样的声明:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:wd="http://your-namespace-uri-here">

命名空间URI必须和XML文件中wd前缀对应的URI完全一致,否则节点会匹配失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 03:54:57