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

XSLT如何根据另一节点文本值获取对应目标节点的Text值

问题原因

你当前的XPath表达式存在命名空间不匹配问题,这是导致值无法取出的核心原因:
你的所有XML节点都归属http://www.sii.cl/SiiDte命名空间,你已为该命名空间绑定了sii前缀,但过滤条件里的<TpoDocRef>节点没有添加sii前缀,导致匹配不到符合条件的<Referencia>节点,自然无法返回对应<FolioRef>的值。

解决步骤

  1. 首先确认你的XSLT根节点(<xsl:stylesheet>或<xsl:transform>)上已正确声明命名空间绑定:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:sii="http://www.sii.cl/SiiDte" exclude-result-prefixes="sii">
  1. 修改XPath表达式,给过滤条件中的<TpoDocRef>添加sii前缀,修正后的<td>代码如下:
<td style="font-size:12px;border-left:2px solid black">                         
    <xsl:value-of select="sii:EnvioDTE/sii:*/sii:DTE/sii:Documento/sii:Referencia[sii:TpoDocRef='801']/sii:FolioRef"/>
</td>

额外排查建议

  • 确认你的完整XML结构和写的路径匹配:如果<Referencia>直接在<SetDTE>节点下,没有嵌套<DTE>、<Documento>节点,需要调整路径为sii:EnvioDTE/sii:SetDTE/sii:Referencia[sii:TpoDocRef='801']/sii:FolioRef
  • 如果存在多个<TpoDocRef>为801的<Referencia>节点,可以在过滤条件后加[1]取第一个匹配项,避免多值输出异常。

内容的提问来源于stack exchange,提问作者Roberto González Moreno

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:45:03