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

根节点含命名空间时,如何在XSLT中获取ItemOut/Shipping/Description值?

问题解决:带命名空间的XML节点获取

你的问题核心是没有在XPath中使用正确的命名空间前缀,导致无法匹配到目标节点。

问题原因

你的XML根节点Request声明了命名空间http://tempuri.org/cXML,这意味着XML中所有子节点(包括ItemOut、Shipping、Description)都属于这个命名空间。而你当前的ShipMethod节点XPath:

<xsl:value-of select="*/ItemOut[1]/Shipping/Description"/>

没有使用XSLT中定义的cxml前缀,XPath会默认查找无命名空间的节点,自然匹配不到目标内容。

正确写法

你需要在所有XML节点前加上cxml:前缀,两种可行的XPath写法:

  1. 相对路径(基于当前上下文):
<xsl:value-of select=".//cxml:ItemOut[1]/cxml:Shipping/cxml:Description"/>
  1. 绝对路径(更精准,避免上下文干扰):
<xsl:value-of select="/cxml:Request/cxml:OrderRequest/cxml:ItemOut[1]/cxml:Shipping/cxml:Description"/>

修改后的ShipMethod片段

替换你XSLT中的对应部分:

<ShipMethod>
    <xsl:value-of select=".//cxml:ItemOut[1]/cxml:Shipping/cxml:Description"/>
</ShipMethod>

额外提醒

检查XSLT中所有引用XML节点的XPath,确保都使用了cxml:前缀——比如你已经在OrderRequestHeader和ItemOut的for-each中正确使用了前缀,保持一致即可。

内容的提问来源于stack exchange,提问作者Sharath Nandi Ramachandra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 13:19:50