很抱歉,如果这个问题很愚蠢,但我似乎无法解决这个问题。我有一个.xml文件,看起来像:
<?xml version="1.0" encoding="utf-8"?>
<tags>
<row Id="1" TagName="bayesian" Count="1342" ExcerptPostId="20258" WikiPostId="20257" />
<row Id="2" TagName="prior" Count="168" ExcerptPostId="62158" WikiPostId="62157" />
<row Id="3" TagName="elicitation" Count="6" />
<row Id="4" TagName="normality" Count="191" ExcerptPostId="67815" WikiPostId="67814" />
<row Id="5" TagName="open-source" Count="13" />
<row Id="6" TagName="distributions" Count="1880" ExcerptPostId="8046" WikiPostId="8045" />
<row Id="9" TagName="machine-learning" Count="2564" ExcerptPostId="9066" WikiPostId="9065" />
<row Id="10" TagName="dataset" Count="514" ExcerptPostId="20490" WikiPostId="20489" />
<row Id="11" TagName="sample" Count="219" ExcerptPostId="28276" WikiPostId="28275" />
<row Id="12" TagName="population" Count="120" ExcerptPostId="69287" WikiPostId="69286" />
<row Id="15" TagName="measurement" Count="97" ExcerptPostId="66319" WikiPostId="66318" />
<row Id="16" TagName="scales" Count="157" />
我需要做的就是读取这个.xml文件并将数据存储在数组中,以便我可以分析它。我执行以下步骤;
import xml.etree.ElementTree as ET
tree = ET.parse('Tags.xml')
root = tree.getroot()
print root
<Element 'tags' at 0x10365d810>
In [37]: root.attrib
Out[37]: {}
root.getchildren
Out[38]: <bound method Element.getchildren of <Element 'tags' at 0x10365d810>>
In [39]: root.getiterator
Out[39]: <bound method Element.getiterator of <Element 'tags' at 0x10365d810>>
In [40]: root.items
Out[40]: <bound method Element.items of <Element 'tags' at 0x10365d810>>
In [41]: root.keys
Out[41]: <bound method Element.keys of <Element 'tags' at 0x10365d810>>
不知何故,我无法找到填充列的步骤。 感谢您的帮助,我是Python和XML的新手 普拉卡什
答案 0 :(得分:0)
root.getchildren
是一个函数,您应该调用它来获取根节点的子节点(如 - root.getchildren()
),尽管它们自Python 2.7以来已被弃用。
您应该迭代root,然后将root子项的属性存储在列表中,例如 -
listofelems = []
for item in root:
listofelems.append(item.attrib)
print(listofelems)
答案 1 :(得分:0)
迭代root
让孩子们。每个孩子都有一个名为dict
的{{1}}成员。在您的XML中,attrib
成员将包含您需要的所有数据。
.attrib