我试图将子元素插入父元素,但是由于某些原因,我无法管理树以写入包含刚创建的子元素的文件。有人可以让我知道我在想什么吗?
这就是我所拥有的
<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?
答案 0 :(得分:1)
问题是此代码
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>'