【问题标题】:Override lxml behavior to write a closing and opening element for Null tags覆盖 lxml 行为以为 Null 标记编写关闭和打开元素
【发布时间】:2013-10-23 13:43:42
【问题描述】:
root = etree.Element('document')
rootTree = etree.ElementTree(root)
firstChild = etree.SubElement(root, 'test')

输出是:

<document>
<test/>
</document

我希望输出是:

<document>
<test>
</test>
</document>

我知道两者是等价的,但有没有办法获得我想要的输出。

【问题讨论】:

    标签: python xml lxml


    【解决方案1】:

    tostringmethod 参数设置为html。如:

    etree.tostring(root, method="html")
    

    参考:Close a tag with no text in lxml

    【讨论】:

      【解决方案2】:

      你可以这样做:

      from lxml import etree
      
      root = etree.Element('document')
      rootTree = etree.ElementTree(root)
      firstChild = etree.SubElement(root, 'test')
      
      print etree.tostring(root, pretty_print=True)
      
      # Set empty string as element content to force open and close tags
      firstChild.text = ''
      
      print etree.tostring(root, pretty_print=True)
      

      输出:

      <document>
        <test/>
      </document>
      
      <document>
        <test></test>
      </document>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-18
        • 2021-09-27
        • 2020-07-02
        • 2016-05-23
        • 1970-01-01
        • 1970-01-01
        • 2010-12-26
        • 2013-05-17
        相关资源
        最近更新 更多