我有以下類型的XML檢索類對象:如何創建並從列表
<?xml version="1.0" encoding="UTF-8"?>
<RootNode>
<childElem>
<prop1 type="int">1</prop1>
<prop2 type="int">2</prop2>
</childelem>
<childElem>
<prop1 type="int">3</prop1>
<prop2 type="int">4</prop2>
</childelem>
<childElem>
<prop1 type="int">5</prop1>
<prop2 type="int">6</prop2>
</childelem>
<childElem>
<prop1 type="int">7</prop1>
<prop2 type="int">8</prop2>
</childelem>
</RootNode>
我已經定義的類來存儲所有的子元素作爲類的不同實例。 我想追加列表中的對象,然後檢索。
在這個xml中共有4個childelem。 創建每個對象後,我已打印每個對象的屬性。 在那裏我看到每個對象都有不同的屬性值。
但之後,當我試圖從列表中檢索for循環中的每個對象並打印每個檢索到的對象的屬性時,它將打印最後一個childelem對象四次。
這裏是代碼片段
def getObjects(self,xmlStr,elem):
objList = []
root = ET.fromstring(xmlStr)
rootNode = root.find(elem)
for obj in rootNode.findall('childElem'):
myObj = Obj()
for props in obj:
myObj.populate(props.tag,props.text)
print(">>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<")
print(myObj.getProps())
print(">>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<")
objList.append(myObj)
for obj1 in objList:
print(obj1.getProps())
print("@@@@@@@@@@@@@@@@@@@@@@@@@@")
return objList
class Obj:
properties = {}
def populate(self,name,value):
self.properties[name] = value
def getProps(self)
return self.properties
我是新來的Python,可以有人解釋一下什麼是錯的? 爲什麼在循環檢索中只有最後一個childElem來了四次? 我該如何糾正錯誤?
這裏是出把
>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<
{'prop1': '1', 'prop2': '2'}
>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<
>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<
{'prop1': '3', 'prop2': '4'}
>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<
>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<
{'prop1': '5', 'prop2': '6'}
>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<
>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<
{'prop1': '7', 'prop2': '8'}
>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<
{'prop1': '7', 'prop2': '8'}
@@@@@@@@@@@@@@@@@@@@@@@@@@
{'prop1': '7', 'prop2': '8'}
@@@@@@@@@@@@@@@@@@@@@@@@@@
{'prop1': '7', 'prop2': '8'}
@@@@@@@@@@@@@@@@@@@@@@@@@@
{'prop1': '7', 'prop2': '8'}
@@@@@@@@@@@@@@@@@@@@@@@@@@
請問您可以在這裏發佈填充和getProps方法的代碼嗎? – gravetii
你能顯示輸出嗎? – poke
添加了代碼填充和getProps 也添加了輸出 – tintin