python xml解析去掉换行符_python – 删除XML字符串中的空格

最简单的解决方案可能是使用

lxml,您可以在其中设置一个解析器选项来忽略元素之间的空白:

>>> from lxml import etree

>>> parser = etree.XMLParser(remove_blank_text=True)

>>> xml_str = '''

>>>

>>>

>>> '''

>>> elem = etree.XML(xml_str, parser=parser)

>>> print etree.tostring(elem)

这可能足以满足您的需求,但有些警告要安全在一起:

这将只是删除元素之间的空白节点,并尝试不使用混合内容删除元素内的空白节点:

>>> elem = etree.XML('

spam ham eggs

', parser=parser)

>>> print etree.tostring(elem)

spam ham eggs

文本节点的前导或尾随空格将不会被删除。然而,在某些情况下,仍然会从混合内容中删除空白节点:如果解析器尚未在该级别遇到非空白节点。

>>> elem = etree.XML('

ham eggs

', parser=parser)

>>> print etree.tostring(elem)

hameggs

如果你不想要,可以使用xml:space =“preserve”,这将被尊重。另一个选择是使用dtd并使用etree.XMLParser(load_dtd = True),其中解析器将使用dtd来确定哪些空格节点是重要的。

除此之外,您必须编写自己的代码来删除不需要的空格(迭代后代,并在适当的情况下将仅包含空格的.text和.tail属性设置为None或空字符串)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值