栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

删除XML字符串中的空格

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

删除XML字符串中的空格

最简单的解决方案可能是使用lxml,您可以在其中设置解析器选项以忽略元素之间的空白:

>>> from lxml import etree>>> parser = etree.XMLParser(remove_blank_text=True)>>> xml_str = '''<root>>>>     <head></head>>>>     <content></content>>>> </root>'''>>> elem = etree.XML(xml_str, parser=parser)>>> print etree.tostring(elem)<root><head/><content/></root>

这可能足以满足您的需求,但是有些警告是安全的:

这只会删除元素之间的空格节点,并尽量不要删除内容混合的元素内部的空格节点:

>>> elem = etree.XML('<p> spam <a>ham</a> <a>eggs</a></p>', parser=parser)>>> print etree.tostring(elem)<p> spam <a>ham</a> <a>eggs</a></p>

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

>>> elem = etree.XML('<p><a> ham</a> <a>eggs</a></p>', parser=parser)>>> print etree.tostring(elem)<p><a> ham</a><a>eggs</a></p>

如果您不想这样做,可以使用

xml:space="preserve"
,它将受到尊重。另一种选择是使用dtd和use
etree.XMLParser(load_dtd=True)
,其中解析器将使用dtd来确定哪些空白节点有效或无效。

除此之外,您将必须编写自己的代码以删除不需要的空格(迭代后代,并在适当的情况下设置

.text
.tail
包含仅空格
None
或为空字符串的属性)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/596358.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号