我在Python中使用DOM解析XML文件。 我的一些XML节点包含一个列表。
示例如下:
<items>
<item>
<name>name001</name>
<rows>10</rows>
<columns>14</columns>
<information>
<i1>[[3, 2]]</i1>
<i2>[[6, 13]]</i2>
<i3>[[3, 5]]</i3>
<i4>[[6, 10], [8, 6]]</i4>
<i5>[[6, 12]]</i5>
</information>
</item>
<item>
<name>name072</name>
<rows>10</rows>
<columns>13</columns>
<information>
<i1>[[3, 5]]</i1>
<i2>[[8, 2]]</i2>
<i3>[[6, 6], [8, 11]]</i3>
<i4>[[4, 7]]</i4>
<i5>[]</i5>
</information>
</item>
</items>
现在我正在解析XML文件:
dom = parse('file.xml')
el = dom.documentElement
allInformation = el.getElementsByTagName('information')
for information in allInformation:
for specific in information.childNodes:
if specific.nodeType == specific.ELEMENT_NODE:
if specific.nodeName == "i1":
self.i1 = specific.firstChild.nodeValue
注意:i1是我文件中的变量:self.i1 = [] 现在对于self.i1的输出是:[[3,5]]
现在,我试图选择i1 [0] [0],这会给出&#39; [&#39;结果是。 我的i1被解释为一个字符串,但我试图将其解释为一个列表。 我怎么能解决这个问题?
最后但并非最不重要的是,我还在寻找一种解析方式,例如#34; name072&#34;。 现在我总是解析我的整个列表,而我只使用最后一个列表。
编辑:我试图让这个更清楚。如果您还有任何建议/问题,请告诉我。
答案 0 :(得分:1)
您可以使用ast.literal_eval
from ast import literal_eval
然后
self.i1 = literal_eval(specific.firstChild.nodeValue)