我正在尝试使用Python(2.7)中的cElementTree iterparse来了解如何检索XML属性值。我的XML是这样的:
<root>
<record attr1="a" attr2="b" attr3="c" ... />
<record attr1="x" attr2="y" attr3="z" ... />
...
</root>
我的代码是这样的:
context = ET.iterparse(sys.stdin, events=('start','end'))
context = iter(context)
event, root = context.next()
for event, elem in context:
if event == 'end' and elem.tag == 'record':
# get the attributes!!
elem.clear()
root.clear()
我正在处理来自stdin的大数据。 我没有运气搞清楚这一点。有人可以告诉你这样做(最佳?)?
答案 0 :(得分:3)
哎呀,盯着我看,有点像:http://docs.python.org/2/library/xml.etree.elementtree.html#element-objects
总结:
elem.get('attr_name', default_value)
,或者
for name, value in elem.items():
,或者
elem.attrib() - dictionary
我还要补充说,有必要修改问题中张贴的代码:
...
if event == 'start' and elem.tag == 'record':
...