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

如何使用Ansible xml模块一站式更新XML中的JAR包版本条目?

使用Ansible XML模块一键管理JAR包版本条目

原始XML示例

<?xml version='1.0'?>
<Files>
<!-- ... -->
 <File Check="Y">public/foo-1.1.0.jar</File>
 <File Check="Y">public/bar-2.3.11.jar</File>
</Files>

需求说明

  • 若存在不同版本的foo条目,替换为指定版本;
  • 若不存在foo条目,自动新增该条目;
  • 可选需求:清除所有重复的foo条目,仅保留指定版本的单个条目。

解决方案:单任务实现所有需求

无需拆分删除和新增两步,可通过单个Ansible XML模块任务一次性完成所有要求:

- name: 确保foo JAR包条目为指定版本且唯一
  xml:
    path: /path/to/your/target/file.xml
    xpath: /Files/File[contains(text(), 'public/foo-')]
    state: present
    value: public/foo-1.2.1.jar
    attribute: Check
    attribute_value: Y
    count: 1

关键参数说明

  • xpath: 通过contains(text(), 'public/foo-')精准匹配所有包含foo包路径的<File>节点,不受版本号影响;
  • state: present: 确保匹配节点存在,若已有匹配节点则更新内容,无匹配节点则自动创建;
  • value: 设置节点文本为目标版本的JAR路径;
  • attribute/attribute_value: 保证节点的Check属性为Y,缺失时自动添加;
  • count: 1: 仅保留1个匹配节点,自动清理所有重复的foo条目,满足可选需求。

对应场景验证

  1. 已有旧版本foo条目:匹配到旧节点后直接替换文本内容为public/foo-1.2.1.jar;
  2. 无foo条目:自动在<Files>节点下新增<File Check="Y">public/foo-1.2.1.jar</File>;
  3. 存在重复foo条目:仅保留1个更新后的条目,其余重复节点被删除。

内容的提问来源于stack exchange,提问作者Mikhail T.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 02:55:24