cmprescott.xml

État de la construction

ansible-xml

Module Ansible pour manipuler des morceaux de fichiers et de chaînes XML. Ce module est actuellement en version de développement de Ansible. Il devrait être publié dans Ansible 2.4.0 à mi-septembre. Par conséquent, tous les problèmes doivent être signalés à ansible.

Installation

Remarques

Qu'est-ce que XPath ?

"XPath utilise des expressions de chemin pour sélectionner des nœuds ou des ensembles de nœuds dans un document XML. Le nœud est sélectionné en suivant un chemin ou des étapes."

En gros, c'est une syntaxe qui vous permet de sélectionner un élément spécifique ou une collection d'éléments ou d'attributs dans un fichier XML.

En savoir plus sur le réseau des développeurs Mozilla

Tests unitaires

Des tests unitaires sont également inclus dans ce dépôt. Référez-vous à ceux-ci, en plus de la configuration Travis-CI, si vous avez besoin de plus d'exemples.

Exemples

Étant donné :

<?xml version='1.0' encoding='UTF-8'?>
<business type="bar">
    <name>Tasty Beverage Co.</name>
    <beers>
        <beer>Rochefort 10</beer>
        <beer>St. Bernardus Abbot 12</beer>
        <beer>Schlitz</beer>
    </beers>
    <rating subjective="true">10</rating>
    <website>
        <mobilefriendly />
        <address>http://tastybeverageco.com</address>
    </website>
</business>

Supprimez l'attribut subjective de l'élément rating :

xml:
  path: /foo/bar.xml
  xpath: /business/rating/@subjective
  state: absent

Fixez la note à 11

xml:
  path: /foo/bar.xml
  xpath: /business/rating
  value: 11

Obtenez le compte des nœuds de bière

xml:
  path: /foo/bar.xml
  xpath: /business/beers/beer
  count: yes
register: hits

debug:
  var: hits.count

Ajoutez un élément phonenumber à l'élément business avec un comportement implicite de mkdir -p là où cela est applicable (les nœuds XML parents sont créés automatiquement)

xml:
  path: /foo/bar.xml
  xpath: /business/phonenumber
  value: 555-555-1234

Ajoutez plusieurs autres bières à l'élément beers, en supposant un fichier vars.yaml avec :

new_beers:
    - beer: "Old Rasputin"
    - beer: "Old Motor Oil"
    - beer: "Old Curmudgeon"

La syntaxe du playbook serait alors :

xml:
  path: /foo/bar.xml
  xpath: /business/beers
  add_children: '{{ new_beers }}'

La même chose, mais faites-le en ligne

xml:
  path: /foo/bar.xml
  xpath: /business/beers
  add_children:
      - beer: "Old Rasputin"
      - beer: "Old Motor Oil"
      - beer: "Old Curmudgeon"

Ajoutez un élément validxhtml à l'élément website. Notez que state est present par défaut, et value par défaut à null pour les éléments. Le résultat est quelque chose comme <website><validxhtml />...</website>

xml:
  path: /foo/bar.xml
  xpath: /business/website/validxhtml

Ajoutez un attribut vide validatedon à l'élément validxhtml. Cela rend en fait le dernier exemple redondant en raison du comportement implicite de création de parent. Le résultat est quelque chose comme <website><validxhtml validatedon='' />...</website>

(1/2) Supprimez tous les enfants de l'élément website :

xml:
  path: /foo/bar.xml
  xpath: /business/website/*
  state: absent

(2/2) Supprimez tous les enfants de l'élément website :

xml:
  path: /foo/bar.xml
  xpath: /business/website
  children: []

Question ? Si vous avez <beers><child01 /><child02 /></beers>

Que se passe-t-il si vous dites :

xml:
  path: /foo/bar.xml
  xpath: /beers

value par défaut à un élément, donc cela effacera les éléments enfants.

À propos du projet

A module to manage various properties of XML documents

Installer
ansible-galaxy install cmprescott.xml
Licence
gpl-3.0
Téléchargements
50.8k
Propriétaire