【发布时间】:2020-06-08 06:13:51
【问题描述】:
我正在尝试从看起来有点像这样的 xml 数据中获取 names:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Major Version</key><integer>1</integer>
<key>Minor Version</key><integer>1</integer>
<dict>
<key>369</key>
<dict>
<key>Track ID</key><integer>369</integer>
<key>Name</key><string>Another One Bites The Dust</string>
<key>Artist</key><string>Queen</string>
</dict>
<key>371</key>
<dict>
<key>Track ID</key><integer>371</integer>
<key>Name</key><string>Asche Zu Asche</string>
<key>Artist</key><string>Rammstein</string>
</dict>
我正在尝试以下代码,它为我提供了 <key> tag 的文本值。考虑到第一个标签的文本值是 Name ,我需要第二个标签的文本值。
所以需要的输出是 Another One Bites The Dust 和 Asche Zu Asche
import xml.etree.ElementTree as ET
stuff = ET.parse(fname)
all = stuff.findall('dict/dict/dict')
for item in all:
for child in item :
if child.tag == 'key' and child.text == 'Name':
print(child.text)
【问题讨论】:
标签: python-3.x xml xml.etree