1
私はアプリケーションでXML解析のためのソリューションとしてlxmlを使用しています。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。私はそれを逃したかもしれない。 :) –