Python中ElementTree中的同级节点

Python中ElementTree中的同级节点,python,xml,xpath,nodes,Python,Xml,Xpath,Nodes,我正在看一段XML,我想在其中添加一个节点 <profile> <dog>1</dog> <halfdog>0</halfdog> <cat>545</cat> <lions>0</lions> <bird>23</bird> <dino>0</dino>

我正在看一段XML,我想在其中添加一个节点

<profile>
    <dog>1</dog>
        <halfdog>0</halfdog>
    <cat>545</cat>
        <lions>0</lions>
    <bird>23</bird>
        <dino>0</dino>
        <pineapples>2</pineapples>
    <people>0</people>
</profile>

1.
0
545
0
23
0
2.
0
通过上面的XML,我能够将XML节点插入其中。但是,我无法将其插入到准确的位置

有没有办法找到我是否在某个节点旁边,无论是在某个节点之前还是之后。假设我想在
0
2
节点之间添加
2


使用
ElementTree
如何找到我旁边的节点?我问的是
ElementTree
或任何标准Python库。不幸的是,
lxml
对我来说是不可能的。

我认为使用ElementTree是不可行的,但您可以使用标准:

输出:

<?xml version="1.0" ?><profile>
    <dog>1</dog>
    <halfdog>0</halfdog>
    <cat>545</cat>
    <lions>0</lions>
    <bird>23</bird>
    <dino>0</dino>
    <snail>2</snail><pineapples>2</pineapples>
    <people>0</people>
</profile>

1.
0
545
0
23
0
22
0

如果您知道父元素和之前要插入的元素,可以对ElementTree使用以下方法:

index = parentElem.getchildren().index(elemToInsertBefore)
parent.insert(index, newElement)

注意:如果使用Python3.2或更高版本:
getchildren()
已被弃用,可以替换为
list(elem)
。第一行将变成
index=list(parentElem).index(elemToInsertBefore)
index = parentElem.getchildren().index(elemToInsertBefore)
parent.insert(index, newElement)