'u kullanarak özyinelemeli XML ayrıştırma python'u Python ElementTree'yi kullanarak aşağıdakini aşağıdaki gibi ayrıştırmaya çalışıyorum. Bunları basmak için en iyi öğeler için modüller yazmaya çalışıyorum. Ancak, kategori öğesi özellik taşıyabilecek veya sahip olamayacağı ve kataegor elemanın içinde bir kategori elemanına sahip olabileceği için biraz zor.ElementTree
Bu konudaki önceki soruya atıfta ettik, ancak aynı adla iç içe elemanlardan oluşur vermedi
Benim Kod: 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>
Çıktı aşağıdaki gibi olmalıdır:
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
Doğru yönde herhangi bir işaretçi yardımcı olacaktır.
Ayrıca, sizin için bir python dict'i yaratan ['xmltodict'] (https://github.com/martinblech/xmltodict) adresine de bakabilirsiniz. –