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

使用Ansible xml模块为指定XML节点添加子节点遇定位问题求助

问题分析与解决方案

你的问题核心是XPath路径语法错误,导致无法正确定位到目标<business type="bar">下的<beers>节点,最终Ansible匹配到了其他节点(最后一个<business>)。

错误点拆解

原XPath /businesss/business/@type[texte()="bar]/beers 存在两个关键问题:

  1. 拼写错误:texte() 应为XPath标准函数 text()
  2. 逻辑错误:你需要筛选的是拥有type="bar"属性的<business>节点,而非直接定位type属性本身。原路径的写法会定位到business的type属性节点,再尝试找它的beers子节点——这显然不符合XML结构,所以最终匹配失败,Ansible默认选择了最后一个符合部分路径的节点。

修正后的Playbook

将XPath修正为正确的节点筛选逻辑即可:

- name: Add child to bar's beers node
  xml:
    path: ./test.xml
    xpath: /businesss/business[@type="bar"]/beers
    add_children:
      - beer: alyne
      - beer: mira

额外提示

你的XML示例里存在一个小问题:第一个<business type="bar">的<rating>节点被错误嵌套在<beers>节点内部,虽然这不影响本次XPath定位,但建议修正XML结构以保证规范性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 19:57:35