【发布时间】:2015-01-28 14:27:32
【问题描述】:
我正在尝试使用 Python ElementTree 解析下面的 XML 以生成如下输出。我正在尝试为顶级元素编写模块来打印它们。但是,这有点棘手,因为类别元素可能有也可能没有属性,并且类别元素内部可能有一个类别元素。
我在本主题中提到过上一个问题,但它们不包含同名的嵌套元素
我的代码: http://pastebin.com/Fsv2Xzqf
work.xml:
<suite id="1" name="MainApplication">
<displayNameKey>my Application</displayNameKey>
<displayName>my Application</displayName>
<application id="2" name="Sub Application1">
<displayNameKey>sub Application1</displayNameKey>
<displayName>sub Application1</displayName>
<category id="2423" name="about">
<displayNameKey>subApp.about</displayNameKey>
<displayName>subApp.about</displayName>
<category id="2423" name="comms">
<displayNameKey>subApp.comms</displayNameKey>
<displayName>subApp.comms</displayName>
<property id="5909" name="copyright" type="string_property" width="40">
<value>2014</value>
</property>
<property id="5910" name="os" type="string_property" width="40">
<value>Linux 2.6.32-431.29.2.el6.x86_64</value>
</property>
</category>
<property id="5908" name="releaseNumber" type="string_property" width="40">
<value>9.1.0.3.0.54</value>
</property>
</category>
</application>
</suite>
输出应该如下:
Suite: MainApplication
Application: Sub Application1
Category: about
property: releaseNumber | 9.1.0.3.0.54
category: comms
property: copyright | 2014
property: os | Linux 2.6.32-431.29.2.el6.x86_64
任何指向正确方向的指针都会有所帮助。
【问题讨论】:
-
还可以查看
xmltodict,它会为您生成一个python dict。
标签: python xml recursion elementtree