1
我正在使用lxml作爲我的應用程序中XML解析的解決方案。lxml - 無法取代兒童的孩子
我明白LXML只能更換父母的直接孩子,但使用.replace
示例XML那個孩子在任何級別:
<root>
<dc>
<batman alias='dark_knight' />
</dc>
</root>
我有像這樣的字符串修改標籤
<batman alias='not_dark_knight' />
我需要一些幫助,用xpath'/ root/dc/batman'替換原來的XML。
from lxml import etree
original_xml = "<root><dc><batman alias='dark_knight' /></dc></root>"
modified_tag = "<batman alias='not_dark_knight' />"
x_path = '/root/dc/batman'
original_obj = etree.fromstring(original_xml)
modified_obj = etree.fromstring(modified_tag)
original_obj.replace(original_obj.xpath(x_path)[0], modified_obj)
這將引發ValueError異常:元素不是此節點的子節點。 有沒有一種方法可以很好地替換字符串? (僅使用lxml)
請理解,我希望只使用lxml庫的解決方案。
這對我有用。謝謝@alecxe。我可能錯過了。 :) –