【问题标题】:Using lxml to add a string as a sub element使用 lxml 添加字符串作为子元素
【发布时间】:2016-04-18 14:36:10
【问题描述】:

我有一个带有像这样构建的子元素的 lxml 元素:

xml = etree.Element('presentation')
format_xml = etree.SubElement(xml, 'format')
content_xml = etree.SubElement(xml, 'slides')

然后我有几个字符串,我希望它迭代并将每个字符串作为子元素添加到幻灯片中。每个字符串都是这样的:

<slide1>
    <title>My Presentation</title>
    <subtitle>A sample presentation</subtitle>
    <phrase>Some sample text
        <subphrase>Some more text</subphrase>
    </phrase>
</slide1>

如何将这些字符串作为子元素附加到幻灯片元素?

【问题讨论】:

    标签: python xml lxml


    【解决方案1】:

    只需追加:

    import lxml.etree as etree
    
    xml = etree.Element('presentation')
    format_xml = etree.SubElement(xml, 'format')
    content_xml = etree.SubElement(xml, 'slides')
    new = """<slide1>
        <title>My Presentation</title>
        <subtitle>A sample presentation</subtitle>
        <phrase>Some sample text
            <subphrase>Some more text</subphrase>
        </phrase>
    </slide1>"""
    
    
    content_xml.append(etree.fromstring(new))
    
    
    print(etree.tostring(xml,pretty_print=1))
    

    这会给你:

    <presentation>
      <format/>
      <slides>
        <slide1>
        <title>My Presentation</title>
        <subtitle>A sample presentation</subtitle>
        <phrase>Some sample text
            <subphrase>Some more text</subphrase>
        </phrase>
    </slide1>
      </slides>
    </presentation>
    

    【讨论】:

      【解决方案2】:

      fromstring() 函数会将 XML 字符串直接加载到您可以附加的 Element 实例中:

      from lxml import etree as ET
      
      slide = ET.fromstring(xml_string)
      content_xml.append(slide)
      

      【讨论】:

        猜你喜欢
        • 2012-07-15
        • 1970-01-01
        • 2010-09-12
        • 2021-08-02
        • 2011-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-29
        相关资源
        最近更新 更多