Skip to content

Latest commit

 

History

History
166 lines (131 loc) · 5.67 KB

ansible.utils.from_xml_filter.rst

File metadata and controls

166 lines (131 loc) · 5.67 KB

ansible.utils.from_xml

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
Parameter Choices/Defaults Configuration Comments
data
string / required
The input XML string.
This option represents the XML value that is passed to the filter plugin in pipe format.
For example config_data|ansible.utils.from_xml, in this case config_data represents this option.
engine
string
Default:
"xmltodict"
Conversion library to use within the filter plugin.

#### 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
#             }
#         }
#     }
# }

Authors

  • 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.