【问题标题】:Python lxml etree remove tail from elementPython lxml etree从元素中删除尾部
【发布时间】:2016-01-18 11:29:44
【问题描述】:

我有一个包含<p> 元素和尾部的元素。

例如:
<p>Content that I want to keep</p>content that I want removed

我注意到需要删除的内容在尾部,我认为有一种简单的方法可以使用 etree 从元素中删除尾部。

我怎么能做到这一点?

【问题讨论】:

    标签: python elementtree


    【解决方案1】:

    老问题,不过为了别人找答案,如果目标是“去掉tail to call etree.tostring()”,那么就不需要修改树了:

    https://lxml.de/api/lxml.etree-module.html#tostring

    string = tostring(element[0], with_tail=False)
    

    【讨论】:

    • 谢谢;这很有帮助。
    【解决方案2】:

    在为此工作了几个小时之后,我才得到了答案。 (当然是在发布问题之后)

    我只是将尾部设置为无:

    element = root.xpath("path/to/element")
    element[0].tail = None
    string = tostring(element[0])
    

    而且它有效。

    【讨论】:

      【解决方案3】:

      使用 lxml 包中的elementsoup

      #!/usr/bin/env python
      
      from lxml.html.soupparser import fromstring
      
      s = """<p>Content that I want to keep</p>content that I want removed"""
      
      print fromstring(s).find('.//p').text
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-30
        • 2017-04-16
        相关资源
        最近更新 更多