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

向XSLT参数传入XML无法正常解析,如何提取指定key的属性值?

XSLT传入XML参数解析失败解决方案

原因定位

parse-xml()函数仅支持字符串类型的合法XML内容作为输入,解析失败基本是参数类型不匹配或者XML内容被异常转义导致的。

分步解决

  • 情况1:参数$items是直接传入的XML节点树
    很多场景下调用方会直接把解析好的XML节点树作为参数传入,这种情况不需要调用parse-xml(),直接通过路径读取即可:
    $items/map/entry[@key = '25812926']
    
  • 情况2:参数$items确实是XML字符串
    1. 先验证字符串合法性,避免XML里的<、"等特殊符号被提前转义成&lt;、&quot;这类HTML实体,你给出的示例XML本身格式合法,无需修改。
    2. 确认参数类型是字符串,可添加调试语句校验:
    <!-- 输出参数内容确认无异常 -->
    <xsl:value-of select="$items" />
    <!-- 输出true则为字符串类型 -->
    <xsl:value-of select="$items instance of xs:string" />
    
    1. 验证通过后用原XPath即可提取到对应值,如需拿取值文本可加text():
    parse-xml($items)/map/entry[@key = '25812926']/text()
    

宿主语言传参注意事项

如果是在Java、C#等语言中调用XSLT处理器传参:

  • 传节点树时直接传入DOM对象,不要转成字符串
  • 传字符串时确保XML内容未被框架自动转义,编码和XML声明一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:27:04