Używam ansible Playbook, aby wyodrębnić określoną wartość atrybutów z pliku XML, aby zastąpić, zgodnie z zaleceniami na stronie modułu XML. Ale nie jestem pewien co do tego scenariusza, w którym znaczniki XML są głęboko zakorzenione. Chciałbym wiedzieć, jak wymienić tę wartość znacznika za pomocą modułu XML XPath w blachy.

Przykładowy plik XML do łatwego zrozumienia:

# <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>

Powyżej chciałbym zmienić BeerPrice do 300 z 200 dla piw typu "B". czy możesz mi z tym pomóc?

0
user1125741 20 lipiec 2020, 07:49

1 odpowiedź

Najlepsza odpowiedź

Poniżej przykładowy zadanie zostanie zastąpi beerPrice <beers type="B"> do 300. Możesz rozszerzyć tę próbkę za pomocą pętli, zmiennych itp i innych określonych wyrażeń Xpath.

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

AKTUALIZACJA


Poniżej przykład modyfikuje type atrybut <beers type="B"> do <beers type="XL">.

- xml:
    path: file1.xml
    xpath: /business/beers[@type='B']
    value: XL
    attribute: type
    state: present
0
Moon 19 styczeń 2021, 10:01