Python中ElementTree中的同级节点
我正在看一段XML,我想在其中添加一个节点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>
<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)