我想在初始example.xml檔案中不存在其子節點的特定路徑向 xml 檔案添加一個元素。添加元素時,我想“即時”創建所有必要的子節點,而不是一次創建一個。
我不知道正確的方法,以下代碼片段只是一個示例,用于說明目的。也許可以使用來自 etree 的不同方法。
我的例子:
from lxml import etree
tree = etree.parse('example.xml')
root = tree.getroot()
path = etree.Element('/leadSinger/names/firstName')
etree.Element(path, "Freddie")
tree.write('example.xml')
初始example.xml檔案:
<interpret>
<name>Queen</name>
<interpret>
創建、插入和寫入元素后的example.xml檔案:
<interpret>
<name>Queen</name>
<leadSinger>
<names>
<firstName>Freddie</firstName>
</names>
</leadSinger>
</interpret>
uj5u.com熱心網友回復:
你可以這樣嘗試:
lead = """<leadSinger>
<names>
<firstName>Freddie</firstName>
</names>
</leadSinger>
"""
elem = etree.fromstring(lead)
destination = root.xpath('//interpret/name')[0]
destination.addnext(elem)
print(etree.tostring(root, encoding="unicode", pretty_print=True))
這應該會給你預期的輸出。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/452385.html
