Ansible Module xml: Difference between revisions
(→"text") |
(→path) |
||
Line 26: | Line 26: | ||
<code><font color=red>The target XML source '...' does not exist.</font></code>. | <code><font color=red>The target XML source '...' does not exist.</font></code>. | ||
The parameter is required unless <code>[[#xmlstring|xmlstring]]</code> is provided. | The parameter is required unless <code>[[#xmlstring|xmlstring]]</code> is provided. | ||
<syntaxhighlight lang='yaml'> | |||
- name: test | |||
xml: | |||
path: test.xml | |||
xpath: /root/child[@name='B'] | |||
content: attribute | |||
register: xpath_result | |||
</syntaxhighlight> | |||
produces the following <code>xpath_result.matches</code>: | |||
<syntaxhighlight lang=JSON> | |||
{ | |||
"child": { | |||
"color": "green", | |||
"name": "B" | |||
} | |||
} | |||
</syntaxhighlight> | |||
==<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. |
Revision as of 21:19, 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">square</child>
<child name="B" color="green">circle</child>
<child name="C" color="blue">triangle</child>
</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.
- name: test
xml:
path: test.xml
xpath: /root/child[@name='B']
content: attribute
register: xpath_result
produces the following xpath_result.matches
:
{
"child": {
"color": "green",
"name": "B"
}
}
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
The matches
result key contains a JSON document listing the matching elements and the value of all their attributes. The count
result key contains the number of matching elements.
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"