2013-08-23 103 views
0

我有XML,其中子元素的順序決定了他們的z順序用於顯示目的。我使用lxml.objectify在XML上進行操作。如何更改lxml中的子元素對象的順序?

如何更改對象化子元素的位置?

E.g.變化:

<canvas> 
    <shape a> 
    <shape b> 
    <shape c> 
</canvas> 

要:

<canvas> 
    <shape b> 
    <shape a> 
    <shape c> 
</canvas> 

回答

1

canvas.shape將是一個列表,所以只需要修改清單:

from lxml import objectify, etree 

canvas = objectify.fromstring(''' 
    <canvas> 
     <shape name="a" /> 
     <shape name="b" /> 
     <shape name="c" /> 
    </canvas> 
''') 

canvas.shape = [canvas.shape[1], canvas.shape[0], canvas.shape[2]] 

print etree.tostring(canvas, pretty_print=True) 
+0

嗨攪拌機,感謝這個:)我才意識到,其實不是所有的形狀都有相同的標籤,因此可能是這樣的:,。這將如何工作? – scanny