Convert given XML string to native python dictionary.
Version added: 2.0.2
- This plugin converts the XML string to a native python dictionary.
- Using the parameters below-
data|ansible.utils.from_xml
#### 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
# }
# }
# }
# }
- Ashwini Mhatre (@amhatre)
Hint
Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.