【问题标题】:How do I wrap the contents of a SubElement in an XML tag in Python 3?如何在 Python 3 中将 SubElement 的内容包装在 XML 标记中?
【发布时间】:2013-02-01 03:03:06
【问题描述】:

我有一个这样的示例 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...

【问题讨论】:

    标签: python lxml elementtree


    【解决方案1】:

    你可以反过来做:(而不是添加一个子元素,添加一个新的父元素。)我的意思是,将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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-07
      • 1970-01-01
      • 2017-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多