Python 将元素的文本内容复制到空同级元素
我现在使用ElementTree已经有一段时间了,但我尝试了一些东西,但没有成功。我得到了一个XML文件,其中有一个树王:Python 将元素的文本内容复制到空同级元素,python,xml,elementtree,Python,Xml,Elementtree,我现在使用ElementTree已经有一段时间了,但我尝试了一些东西,但没有成功。我得到了一个XML文件,其中有一个树王: <root> <page> <revision> <username>Name</> <ID>124</> <Adress_ip></> <revision
<root>
<page>
<revision>
<username>Name</>
<ID>124</>
<Adress_ip></>
<revision>
<username></>
<ID>125</>
<Adress_ip>192.168.0.1</>
这个脚本不想做它的if语句,因此在没有用户名的情况下将所有元素留空
这一点,
vide = username.text.find("")
if username.text == vide:
...
不起作用;它不测试username
是否为空。只用
if username.text == None:
...
我想做的是把用户名和地址都放在同一个元素中。更准确地说,当用户名为空时,我试图用地址IP中的文本填充它。在同一个元素中,总是存在一对另一个值,而不是两个值同时存在 输入XML(revisions.XML): 输出:
<root>
<page>
<revision>
<username>Name</username>
<ID>124</ID>
<Adress_ip />
</revision>
<revision>
<username>192.168.0.1</username>
<ID>125</ID>
<Adress_ip>192.168.0.1</Adress_ip>
</revision>
</page>
</root>
名称
124
192.168.0.1
125
192.168.0.1
<root>
<page>
<revision>
<username>Name</username>
<ID>124</ID>
<Adress_ip></Adress_ip>
</revision>
<revision>
<username></username>
<ID>125</ID>
<Adress_ip>192.168.0.1</Adress_ip>
</revision>
</page>
</root>
from xml.etree import ElementTree as ET
tree = ET.parse("revisions.xml")
for revision in tree.iter("revision"):
username = revision.find('username')
Adress_ip = revision.find('Adress_ip')
if username.text == None:
username.text = Adress_ip.text
print ET.tostring(tree.getroot())
<root>
<page>
<revision>
<username>Name</username>
<ID>124</ID>
<Adress_ip />
</revision>
<revision>
<username>192.168.0.1</username>
<ID>125</ID>
<Adress_ip>192.168.0.1</Adress_ip>
</revision>
</page>
</root>