4

我有一个这样的示例 xml 文件:

<root>
   She
   <opt>went</opt>
   <opt>didn't go</opt>
   to school.
</root>

我想创建一个名为 of 的子元素,并将 的所有内容放入其中。那是,

<root>
   <sentence>
       She
       <opt>went</opt>
       <opt>didn't go</opt>
       to school.
   </sentence>
</root>

我知道用 ElementTree 或 lxml 制作子元素很热门,但我不知道如何从“She”到“shools”进行选择。一次全部。

import lxml.etree as ET
ET.SubElement(root, 'sentence')
I'm lost...
4

1 回答 1

3

你可以反过来:(而不是添加一个子元素,添加一个新的父元素。)我的意思是,将root标签更改为sentence,创建一个新root元素,并将旧的root(现在sentence)插入新的root

import lxml.etree as ET

content = '''\
<root>
   She
   <opt>went</opt>
   <opt>didn't go</opt>
   to school.
</root>'''

root = ET.fromstring(content)
root.tag = 'sentence'
newroot = ET.Element('root')
newroot.insert(0,root)
print(ET.tostring(newroot))

# <root><sentence>
#    She
#    <opt>went</opt>
#    <opt>didn't go</opt>
#    to school.
# </sentence></root>
于 2013-02-01T03:10:49.093 回答