【发布时间】:2015-06-12 10:39:36
【问题描述】:
我有一个 html 文件,其中包含一些像这样的 div(非常简化):
<div num="1" class="class1">
<div class="class1-text">
<span class="class2">
<span class="class3"> some chinese text </span>
some english text
</span>
</div>
</div>
我正在尝试通过使用 lxml 删除包含它的 span 节点来删除所有中文文本:
parser = et.XMLParser(remove_blank_text=True, recover=True)
documentXml=et.parse(html_FileName, parser)
for class1Node in documentXml.xpath('//div[@class="class1-text"]'):
chineseNode=class1Node.xpath('.//span[@class="class3"]')
chineseNode.getparent().remove(chineseNode)
但是我不是从 xpath 中获取 span class3 节点,而是得到 span class2,因此我最终删除了所有内容(甚至是英文文本)。
如果我不使用 lxml 解析,则会出现解析错误(可能是汉字问题或 html 错误)。
【问题讨论】: