ansible.utils.from_xml filter – Convert given XML string to native python dictionary.
Note
This filter plugin is part of the ansible.utils collection (version 5.1.2).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install ansible.utils
.
To use it in a playbook, specify: ansible.utils.from_xml
.
New in ansible.utils 2.0.2
Synopsis
This plugin converts the XML string to a native python dictionary.
Using the parameters below-
data|ansible.utils.from_xml
Keyword parameters
This describes keyword parameters of the filter. These are the values key1=value1
, key2=value2
and so on in the following
example: input | ansible.utils.from_xml(key1=value1, key2=value2, ...)
Parameter |
Comments |
---|---|
The input XML string. This option represents the XML value that is passed to the filter plugin in pipe format. For example |
|
Conversion library to use within the filter plugin. Default: |
Examples
#### Simple examples with out any engine. plugin will use default value as xmltodict
- name: convert given XML to native python dictionary
ansible.builtin.set_fact:
data: ' <netconf-state xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"><schemas><schema/></schemas></netconf-state> '
- debug:
msg: '{{ data|ansible.utils.from_xml }}'
# TASK######
# TASK [convert given XML to native python dictionary] *****************************************************************************************************
# task path: /Users/amhatre/ansible-collections/playbooks/test_utils.yaml:5
# ok: [localhost] => {
# "ansible_facts": {
# "data": " <netconf-state xmlns=\"urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring\"><schemas><schema/></schemas></netconf-state> "
# },
# "changed": false
# }
#
# TASK [debug] *************************************************************************************************************************
# task path: /Users/amhatre/ansible-collections/playbooks/test_utils.yaml:13
# Loading collection ansible.utils from /Users/amhatre/ansible-collections/collections/ansible_collections/ansible/utils
# ok: [localhost] => {
# "msg": {
# "netconf-state": {
# "@xmlns": "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring",
# "schemas": {
# "schema": null
# }
# }
# }
# }
#### example2 with engine=xmltodict
- name: convert given XML to native python dictionary
ansible.builtin.set_fact:
data: ' <netconf-state xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"><schemas><schema/></schemas></netconf-state> '
- debug:
msg: '{{ data|ansible.utils.from_xml(''xmltodict'') }}'
# TASK######
# TASK [convert given XML to native python dictionary] *****************************************************************************************************
# task path: /Users/amhatre/ansible-collections/playbooks/test_utils.yaml:5
# ok: [localhost] => {
# "ansible_facts": {
# "data": " <netconf-state xmlns=\"urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring\"><schemas><schema/></schemas></netconf-state> "
# },
# "changed": false
# }
#
# TASK [debug] *************************************************************************************************************************
# task path: /Users/amhatre/ansible-collections/playbooks/test_utils.yaml:13
# Loading collection ansible.utils from /Users/amhatre/ansible-collections/collections/ansible_collections/ansible/utils
# ok: [localhost] => {
# "msg": {
# "netconf-state": {
# "@xmlns": "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring",
# "schemas": {
# "schema": null
# }
# }
# }
# }