我对XML和Python还是很陌生,可以将本站点和其他站点中的内容整合在一起。我正在尝试对元素进行深度复制并使用ElementTree将其追加到另一个元素。从下面的输入表开始:
<Company>
<Identifier>Benesolv</Identifier>
<Employee>
<EESSN>111111111</EESSN>
<Dependent>
<SSN>222222222</SSN>
</Dependent>
</Employee>
</Company>
这是我能运行的代码,但不是我最终希望的代码。
import xml.etree.ElementTree as ET
import copy
tree = ET.parse("file.xml")
root = tree.getroot()
x = copy.deepcopy(root[0])
for elem in tree.findall("Company/Employee/Dependent"):
elem.append(copy.deepcopy(x))
tree.write("file.xml")
以下是复制<Identifier>
元素并追加到<Dependent>
元素的输出:
<Company>
<Identifier>Benesolv</Identifier>
<Employee>
<EESSN>111111111</EESSN>
<Dependent>
<SSN>222222222</SSN>
<Identifier>Benesolv</Identifier>
</Dependent>
</Employee>
</Company>
我想做的是复制<EESSN>
元素并追加到<Dependent>
元素,但是我不知道如何做。我认为我只是将root[0]
替换为可以识别<EESSN>
元素的东西,但是我尝试的所有方法都无法正常工作。感谢您的帮助。
所需的输出:
<Company>
<Identifier>Benesolv</Identifier>
<Employee>
<EESSN>111111111</EESSN>
<Dependent>
<SSN>222222222</SSN>
<EESSN>111111111</EESSN>
</Dependent>
</Employee>
</Company>
答案 0 :(得分:0)
您不需要对任何内容进行深度复制;只需将logDao.insertAll(testLog)
元素分配给变量,然后将append分配给Thread.sleep(someMillisec)
。
XML输入
EESSN
Python
Dependent
XML输出
<Company>
<Identifier>Benesolv</Identifier>
<Employee>
<EESSN>111111111</EESSN>
<Dependent>
<SSN>222222222</SSN>
</Dependent>
</Employee>
</Company>