【发布时间】:2016-01-18 11:29:44
【问题描述】:
我有一个包含<p> 元素和尾部的元素。
例如:<p>Content that I want to keep</p>content that I want removed
我注意到需要删除的内容在尾部,我认为有一种简单的方法可以使用 etree 从元素中删除尾部。
我怎么能做到这一点?
【问题讨论】:
标签: python elementtree
我有一个包含<p> 元素和尾部的元素。
例如:<p>Content that I want to keep</p>content that I want removed
我注意到需要删除的内容在尾部,我认为有一种简单的方法可以使用 etree 从元素中删除尾部。
我怎么能做到这一点?
【问题讨论】:
标签: python elementtree
老问题,不过为了别人找答案,如果目标是“去掉tail to call etree.tostring()”,那么就不需要修改树了:
https://lxml.de/api/lxml.etree-module.html#tostring
string = tostring(element[0], with_tail=False)
【讨论】:
在为此工作了几个小时之后,我才得到了答案。 (当然是在发布问题之后)
我只是将尾部设置为无:
element = root.xpath("path/to/element")
element[0].tail = None
string = tostring(element[0])
而且它有效。
【讨论】:
使用 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
【讨论】: