使用Ansible解析XML并替换XML标记中的字符串值 [英] Parse the xml and replace a string value in xml tag using ansible

查看:31
本文介绍了使用Ansible解析XML并替换XML标记中的字符串值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Ansible Playbook从XML文件中提取要替换的特定属性值,如Ansible XML模块页面中所述。但是对于XML标记根深蒂固的这种场景,我不太确定。我想知道如何使用Ansible中的XML XPath模块替换此标记值。

为便于理解,示例XML文件:

# <business type="bar">
#   <name>Tasty Beverage Co.</name>
#     <beers type="A">
#       <beerPrice>100</beer>
#       <beerName>Schlitz</beer>
#    </beers>
#    <beers type="B">
#       <beerPrice>200</beer>
#       <beerName>Old Curmudgeon</beer>
#    </beers>
#    <beers type="C">
#       <beerPrice>200</beer>
#       <beerName>Old Granny</beer>
#    </beers>
#   <rating subjective="true">10</rating>
#   <website>
#     <mobilefriendly/>
#     <address>http://tastybeverageco.com</address>
#   </website>
# </business>

以上,我想将啤酒类型&B&q;的啤酒价格从200更改为300。 你能帮我搬这个吗?

推荐答案

以下示例任务将替换<beers type="B">beerPrice300。 您可以使用循环、变量等和其他特定的XPath表达式来扩展此示例。

- xml:
    path: file1.xml
    xpath: /business/beers[@type='B']/beerPrice
    value: '300'
    state: present

更新


下面的示例将<beers type="B">type属性修改为<beers type="XL">

- xml:
    path: file1.xml
    xpath: /business/beers[@type='B']
    value: XL
    attribute: type
    state: present

这篇关于使用Ansible解析XML并替换XML标记中的字符串值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆