XML 树中使用 Elementtree 的更改不会更新

Changes in XML tree using Elementtree do not get updated

我正在尝试将子元素插入到父元素中,但出于某种原因,我无法设法更新树以写入包含我刚刚创建的子元素的文件。任何人都可以让我知道我错过了什么吗?

这就是我的

<text>
  <p>
  </p>
  <p>
  </p>
</text>

这就是我需要的

<text>
  <p>
    <s>
    </s>
  </p>


  <p>
    <s>
    </s>
  </p>
</text>

tree = et.parse('/Users/missogra/Desktop/test/s_tagging/1.txt')
root = tree.getroot()
for element in root:
    if element.tag == 'p':
        p = et.Element("p")
        child = et.SubElement(p, "s" )
# How to update the new root from here?

问题是这段代码

p = et.Element("p")
child = et.SubElement(p, "s" )

正在创建一个新的 <p> 元素,它不是树的一部分,并向其附加子元素。树本身保持不变。

将新的子元素附加到您在树中找到的 <p> 元素。

>>> for elem in root:
...     if elem.tag == 'p':
...         ET.SubElement(elem, 's')
... 
<Element 's' at 0x7f7810b24e58>
<Element 's' at 0x7f780ffdf4f8>

>>> ET.tostring(root)
b'<text><p><s /></p><p><s /></p></text>'