我正在学习如何从xml文件中获取信息,希望你能帮我解决这个简单的问题。
我想收到xml文件中的所有信息。 F.e这是一个xml文件:https://msdn.microsoft.com/en-us/library/ms762271%28v=vs.85%29.aspx
这是我的代码:
import urllib
import xml.etree.ElementTree as ET
x = open('books.xml')
tree = ET.parse(x)
root = tree.getroot()
print root.tag
for c in root:
print c.tag,":", c.text
for x in c:
print x.tag,":", x.text
是否有更优雅的方式来打印位于文件中的所有通知?
答案 0 :(得分:0)
你可以找到root的所有元素:
for e in tree.findall('.//'):
<do stuff>
答案 1 :(得分:0)
你的意思是更优雅的输出或更优雅的方式迭代树?如果你的意思是第二种选择,那么你应该尝试列表理解吗?
import xml.etree.ElementTree as ET
from pprint import pprint
x = open('books.xml')
tree = ET.parse(x)
root = tree.getroot()
d = [{x.tag: x.text for x in c} for c in root]
pprint(d)
你也可以这样做:
def recursive_dict(element):
return element.tag, dict(map(recursive_dict, element)) or element.text
for book in root:
pprint(recursive_dict(root))