Get a json dictionary from xml file
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
easiest way to parse xml in python
我需要解析一个看起来像XML文件但没有XML声明的文件。
以下是XML文件的示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <connection name="name_1"> <parameter name="user" value="user_value_1"/> <parameter name="password" value="psw_1"/> </connection> <connection name="name_2"> <parameter name="user" value="user_value_2"/> <parameter name="password" value="psw_2"/> </connection> <connection name="name_n"> <parameter name="user" value="user_value_n"/> <parameter name="password" value="psw_n"/> </connection> |
我的问题是,我可以使用哪些库来解析当前文件?
实际上,给定当前文件,如何获得输出:
{"connection names":["name_1","name_2",…,"name_n"]}
谢谢,
安东尼奥
XML无效,无法正确分析,因为它不包含主元素。以下是有效版本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <connections> <connection name="name_1"> <parameter name="user" value="user_value_1"/> <parameter name="password" value="psw_1"/> </connection> <connection name="name_2"> <parameter name="user" value="user_value_2"/> <parameter name="password" value="psw_2"/> </connection> <connection name="name_n"> <parameter name="user" value="user_value_n"/> <parameter name="password" value="psw_n"/> </connection> </connections> |
您可以使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | from xml.dom.minidom import parseString document = parseString(''' <?xml version="1.0"?> <connections> <connection name="name_1"> <parameter name="user" value="user_value_1"/> <parameter name="password" value="psw_1"/> </connection> <connection name="name_2"> <parameter name="user" value="user_value_2"/> <parameter name="password" value="psw_2"/> </connection> <connection name="name_n"> <parameter name="user" value="user_value_n"/> <parameter name="password" value="psw_n"/> </connection> </connections>''') names = {'connection names': []} for connection in document.getElementsByTagName('connection'): names['connection names'].append(connection.getAttribute('name')) print names |
输出为:
1 | {'connection names': [u'name_1', u'name_2', u'name_n']} |