<p>最简单的尝试可能是使用<code>lxml.etree</code>并通过<code>xpath</code>(即这里的<code>//hudson.model.StringParameterDefinition/defaultValue</code>)抓取节点,如下所示进行更改并正确更改-</p>
<pre><code>from lxml import etree as et
data = """<parameterDefinitions>
<hudson.model.StringParameterDefinition>
<name>name</name>
<description></description>
<defaultValue>abc</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.BooleanParameterDefinition>
<name>branch</name>
<description></description>
<defaultValue>true</defaultValue>
</hudson.model.BooleanParameterDefinition>
</parameterDefinitions>"""
tree = et.fromstring(data)
w = tree.xpath("//hudson.model.StringParameterDefinition/defaultValue")
w[0].text = "changed"# here w is a list
print et.tostring(tree,pretty_print=True)
</code></pre>
<p>输出-</p>
<pre><code><parameterDefinitions>
<hudson.model.StringParameterDefinition>
<name>name</name>
<description/>
<defaultValue>changed</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.BooleanParameterDefinition>
<name>branch</name>
<description/>
<defaultValue>true</defaultValue>
</hudson.model.BooleanParameterDefinition>
</parameterDefinitions>
</code></pre>