提问人:don't blink 提问时间:9/23/2023 更新时间:9/23/2023 访问量:31
xml.etree.ElementTree 在xml文件中将双标签转换为单标签
xml.etree.ElementTree convert double tag to single tag in xml file
问:
我的意思是如何使用 ElementTree 将 MyBro 标签从 double 转换为 single?
从:<MyBro>Steve</MyBro>
自:<MyBro Name="Steve" />
P.S. QS 我做了什么?搜索文档和整个谷歌以获取信息。可能遗漏了什么?
答:
0赞
Fanchen Bao
9/23/2023
#1
我假设您正在解析 XML 文件/字符串,并希望将带有双标记的节点替换为单个标记。为此,以下解决方案应有效。
import xml.etree.ElementTree as ET
XML = '''
<Friend>
<MyBro>
Foo
</MyBro>
<MyBro>
Bar
</MyBro>
<MyBro>
Lol
</MyBro>
</Friend>
'''
# tree = ET.parse(filename) # if XML from a file
tree = ET.ElementTree(ET.fromstring(XML))
root = tree.getroot()
ET.indent(root)
for child in root.findall('MyBro'):
name = child.text.strip() # get the name enclosed between two tags
tail = child.tail # record the original ordering
child.clear()
child.set('Name', name) # use attribute to store name
child.tail = tail # restore ordering
print(ET.tostring(root, encoding='unicode'))
输出将是
<Friend>
<MyBro Name="Foo" />
<MyBro Name="Bar" />
<MyBro Name="Lol" />
</Friend>
评论