使用元素树在 xml 中的子元素之后附加同级元素

Appending a sibling element after a child element in xml using Element Tree

我使用 Elementtree 创建了一个元素。我想在用户名之后附加此元素。 我找到了我想要的用户名,但无法在该用户名后添加元素。

我的代码:

import xml.etree.ElementTree as ET

root = ET.parse("sample.xml")

feature_list = ET.Element('FeatureList')

for f in range(0,5):
    ele = ET.SubElement(feature_list, 'FeatureDetail')
    sub_ele = ET.SubElement(ele, 'FeatureId')
    sub_ele.text = str(f)

for UserName in root.findall('.//UserName'):
    if(UserName.text == 'john@abc.com'):
        Sibling= Sibling.UserName
        Sibling.append(feature_list)

Elementtree 中没有命令兄弟。如何在我找到的用户名后添加元素。提前致谢。我只想在元素树中解决方案而不是在 lxml 中。

您没有 sibling 方法,在 lxml 中是正确的。但是您可以使用 addnextaddprevious 等选项。

试试这个:

for UserName in root.findall('.//UserName'):
    if(UserName.text == 'john@abc.com'):
        UserName.addnext(feature_list )