默认情况下,lxml.etree使用标准解析器
创建一个解析器,在解析时删除标记之间的空文本
如果事先知道纯空白内容对数据没有意义,则可以减小树的大小并避免尾部文本悬空
from lxml import etree
parser = etree.XMLParser(remove_blank_text=True)
root = etree.XML("<root> <a/> <b> </b> </root>", parser)
print(etree.tostring(root)) #输出:b'<root><a/><b> </b></root>',<br>标签中的空格没有被删除,它被当做了数据
for element in root.iter("*"):
if element.text is not None and not element.text.strip():
element.text = None
etree.tostring(root) #输出:b'<root><a/><b/></root>',<br>标签中的空格被删除