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

2024-04-25 06:32:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将子元素插入父元素,但由于某些原因,我无法更新树以编写包含我刚刚创建的子元素的文件。有人能告诉我我错过了什么吗?你知道吗

这就是我所拥有的

<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?

Tags: 文件texttesttree元素parse原因root
1条回答
网友
1楼 · 发布于 2024-04-25 06:32:48

问题是这个代码

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>'

相关问题 更多 >