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

请求协助编写XQuery提取XML中personIdExternal节点值(命名空间处理)

修正后的XQuery代码及说明

原代码存在的问题

  • 未处理XML命名空间:输入XML的<entry>属于Atom默认命名空间,<properties>属于m前缀命名空间,<personIdExternal>属于d前缀命名空间,无命名空间声明会导致节点匹配失败
  • 路径错误:根节点是<feed>而非直接<entry>,且properties节点嵌套在<content>下,原路径无法定位目标节点
  • 变量引用错误:使用变量时未加$符号,导致语法错误
  • 结构不符合需求:原代码每个<entry>生成一个独立的<element>,而需求是单个<element>包含所有<personIdExternal>节点

修正后的XQuery代码

declare namespace atom = "http://www.w3.org/2005/Atom";
declare namespace m = "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata";
declare namespace d = "http://schemas.microsoft.com/ado/2007/08/dataservices";

<element>
{
    for $entry in /atom:feed/atom:entry
    let $personIdVal := $entry/atom:content/m:properties/d:personIdExternal/text()
    return <personIdExternal>{$personIdVal}</personIdExternal>
}
</element>

代码说明

  1. 命名空间声明:明确声明输入XML中涉及的三个命名空间,确保节点路径能正确匹配
  2. 节点遍历:从根节点atom:feed开始,遍历所有子节点atom:entry
  3. 目标值提取:通过完整路径atom:content/m:properties/d:personIdExternal定位到目标节点,提取其文本内容
  4. 结构输出:将所有提取到的<personIdExternal>节点统一包裹在<element>根节点下,完全符合需求的输出格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 01:16:10