擅长:python、mysql、java
<p><strong>编辑</p>
<p>澄清之后,使用<code>lxml</code>:<br/>的工作代码</p>
<pre><code>from lxml import etree
xml = """<parent>
<child1>321</child1>
<par_child2>
<par_par_child1>
<par_par__child1_child>XYZ</par_par__child1_child>
...
</par_par_child1>
</par_child2>
</parent>"""
tree = etree.fromstring(xml)
for element in tree.iter('par_child2'):
if element.find('par_par_child1/par_par__child1_child').text == 'XYZ':
# Traverse up and back down again, I prefer this over indexes
element.find('../child1').text = '123'
print(etree.tostring(tree, pretty_print=True).decode('utf-8'))
</code></pre>
<p>输出</p>
<p/><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
;
<div^{cl2}$
;
^{pr2}$
;
</div>
;
</div>
;