Skip to content

ai0376/pyxml2dict

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
raomj
Jun 25, 2020
0351b1b · Jun 25, 2020

History

15 Commits
Aug 8, 2017
Aug 8, 2017
Jun 25, 2020
Jun 25, 2020
Aug 8, 2017
Jun 25, 2020
Jun 25, 2020

Repository files navigation

pyxml2dict

pyxml2dict is an open source python library, which used for converting xml to python dict

pyxml2dict is licensed under the GPL-3.0

Prefix the attribute in the dictionary @attribute , the value corresponding to key is #text

Installing

Install with pip:


    $pip install pyxml2dict

Usage


  from pyxml2dict import XML2Dict

  if __name__ == '__main__':
      xml_str1 = """<root id="1"><items><item>1</item><item>2</item></items></root>"""
      xml_str2 = """<root id="1"><age>20</age><items><item id="0">1</item><item>2</item></items></root>"""
      xml2dict = XML2Dict()
      print xml2dict.fromstring(xml_str1)
      print xml2dict.fromstring(xml_str2)
      #if you want namespace to be removed then:
      xml_str3 = """<root id="1" xmlns="somenamespace"><items><item>1</item><item>2</item></items></root>"""
      print xml2dict.fromstring(xml_str3)
      print xml2dict.fromstring(xml_str3, remove_namespace=True)

print result


 {'root': {'items': {'item': ['1', '2']}, '@id': '1'}}

 {'root': {'items': {'item': [{'#text': '1', '@id': '0'}, '2']}, 'age': '20', '@id': '1'}}

 {'{somenamespace}root': {'@id': '1', '{somenamespace}items': {'{somenamespace}item': ['1', '2']}}}
 
 {'root': {'items': {'item': ['1', '2']}, '@id': '1'}}

Thanks

In XML2Dict , _parse_node algorithm comes from https://github.com/undefine1995/xml2dict, It's very useful. Thanks for undefine1994.