【发布时间】:2014-07-30 01:22:34
【问题描述】:
我正在使用 lxml iterwalk 遍历 HTML 树,我想用换行符替换 <pre></pre> 内的所有 <br> 标记。这就是我目前所拥有的:
root = lxml.html.fromstring(text)
for action, el in etree.iterwalk(root):
if el.tag == 'pre':
for br in el.xpath('br'):
# replace this <br> tag with "\n"
如果可能的话,替换应该在这个循环中完成,因为无论如何我们都需要循环,并且在其中包含这一步可能是最有效的方法。
关于 SO 有一个类似的问题/答案,但它无助于解决问题: How can one replace an element with text in lxml?
【问题讨论】:
-
我问过一个类似的问题 - 但我没有将 iterwalk 作为条件。
-
您对基于
BeautifulSoup的解决方案是否满意,或者lxml是必需的? -
lxml 是一个要求——它很快,这正是我们所需要的。但是文档是纯粹的恐怖:-P
-
好的,使用
BeautifulSoup非常简单直接。
标签: python html replace html-parsing lxml