【发布时间】:2020-07-01 01:48:31
【问题描述】:
我有以下 xml,因此需要更新 CDATA 部分中的值 tag 。我试过元素 树使用 xpath 解析直到 vsdata,能够获取 CDATA 并更新 f1 的值。 但问题是更新后,在更新的 xml 中,只有 CDATA 的内容仍然存在,其余的 xml 不是 见过。
rootElement=rootElement.findall(xpath)[0] -> Xpath till vsdata.
rootElement=et.fromstring(rootElement.iter().next().text)
for each in rootElement[0]:
if each.tag == paramname:
each.text = str(valueToSet)
print(each.tag, each.text)
<config>
<subconfig>
<a>First Cell</a>
<b>Second Cell</b>
<vsDataContainer>
<id>0</id>
<vsData><![CDATA[
<g>
<f>
<f1>10</f1>
<f2>20</f2>
<f3>30</f3>
</f>
</g>
]]></vsData>
</vsDataContainer>
</subconfig>
</config>
After updating in new xml only following is remained
<g>
<f>
<f1>50</f1>
<f2>20</f2>
<f3>30</f3>
</f>
</g>
But i need it as original with value f1 updated to new value, Could somebody help on this?
<config>
<subconfig>
<a>First Cell</a>
<b>Second Cell</b>
<vsDataContainer>
<id>0</id>
<vsData><![CDATA[
<g>
<f>
<f1>50</f1>
<f2>20</f2>
<f3>30</f3>
</f>
</g>
]]></vsData>
</vsDataContainer>
</subconfig>
</config>
【问题讨论】: