Ansible Module xml: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 28: Line 28:
==<tt>xpath</tt>==
==<tt>xpath</tt>==
A valid [[XPath]] expression describing the file item(s) to manipulate. Operates on the document root, /, by default.
A valid [[XPath]] expression describing the file item(s) to manipulate. Operates on the document root, /, by default.
==<tt>content</tt>==
Return the content of the matching XPath expression. <code>[[#xpath|xpath]]</code> must be set. It can have to values:
==="attribute"===
==="text"===


==<tt>xmlstring</tt>==
==<tt>xmlstring</tt>==

Revision as of 21:11, 4 July 2021

External

Internal

Overview

The plugin is named community.general.xml and it offers functionality aimed at interacting with XML files, using XPath.

Example

<root>
    <child name="A" color="red"/>
    <child name="B" color="green"/>
    <child name="C" color="blue"/>
</root>
- name: XML manipulation
  xml:
    path: /tmp/test.xml # the file must exist
    xpath: /root/child[@name='B']

Module Parameters

path

The path to the file to operate on. The file must exists, otherwise the module will fail, with a message similar to: The target XML source '...' does not exist.. The parameter is required unless xmlstring is provided.

xpath

A valid XPath expression describing the file item(s) to manipulate. Operates on the document root, /, by default.

content

Return the content of the matching XPath expression. xpath must be set. It can have to values:

"attribute"

"text"

xmlstring

Use Cases

Query

Insertion

Update

Deletion

- name: Bump Java build heap size to {{build.jvm.heap_max}} MB
  xml:
    path: "{{ansible_env.PROJECT_ROOT}}/.idea/compiler.xml"
    xpath: /project/component[@name='CompilerConfiguration']/option[@name='BUILD_PROCESS_HEAP_SIZE']
    attribute: "value"
    value: "{{build.jvm.heap_max}}"
- name: Set Eclipse as default compiler
  xml:
    path: "{{idea_path}}/.idea/compiler.xml"
    xpath: /project/component[@name='CompilerConfiguration']/option[@name='DEFAULT_COMPILER']
    attribute: "value"
    value: "Eclipse"