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

如何在XSLT中引用AddressLine3-6这类含数字的子节点子集

解决方案

你可以通过在XPath表达式中提取地址行的数字后缀,并限定其范围来实现需求,无需使用if语句。修改后的select表达式会精准匹配AddressLine3到AddressLine6节点:

<out:AddressLine>
  <xsl:value-of select="$nodeOfAddress/*[
    starts-with(name(), 'in:AddressLine') 
    and number(substring-after(name(), 'in:AddressLine')) >= 3 
    and number(substring-after(name(), 'in:AddressLine')) <= 6
  ]/text()[normalize-space()]/normalize-space()" separator=" "/>
</out:AddressLine>

表达式说明

  • substring-after(name(), 'in:AddressLine'):从节点名称中提取数字部分(比如从in:AddressLine3得到3)
  • number(...):将提取到的字符串转换为数字,方便进行范围判断
  • >=3 and <=6:限定只处理数字在3到6之间的地址行节点

测试效果

针对你提供的XML示例,这段代码会将AddressLine3到AddressLine6的内容拼接成单个字符串输出,忽略其他地址行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 01:11:00