pythonlxml:读取重复元素并存储在lis中的奇怪问题

2024-10-06 12:10:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我遇到了一个奇怪的问题。我有两个非常不同的代码版本来解决同一个问题,并且遇到了相同的问题。在

我把问题简化为:

以下是xml文件:

<Test>
 <Object name="Ob1">
  <List/>
 </Object>

 <Object name="Ob2">
  <List>
   <item>One</item>
   <item>Two</item>
  </List>
 </Object>

 <Object name="Ob3">
  <List>
   <item>Three</item>
   <item>Four</item>
   <item>Five</item>
  </List>
 </Object>
</Test>

下面是python代码:

^{pr2}$

代码应该存储对象中列表中的所有<item>元素,对象本身存储在列表中。在

但是,我得到的输出是:

^{3}$

为什么它获取整个文档中的所有<item>元素?在


Tags: 文件对象代码nametest版本元素列表
1条回答
网友
1楼 · 发布于 2024-10-06 12:10:31

TestClass.list是一个类级属性,因此每个object_list.append()都发生在同一个列表中。在

例如:

class Foo(object):
    lst = []

f1 = Foo()
f1.lst.append(1)
f2 = Foo()
f2.lst.append(2)
print f1.lst
print f2.lst

[1, 2]
[1, 2]

您应该将其设为实例级属性

^{pr2}$

相关问题 更多 >