如何在Python 2.6中删除XML字符串中的空格和换行符?我尝试了以下软件包:
etree:此代码段保留原始空格:
xmlStr = '''<root>
<head></head>
<content></content>
</root>'''
xmlElement = xml.etree.ElementTree.XML(xmlStr)
xmlStr = xml.etree.ElementTree.tostring(xmlElement, 'UTF-8')
print xmlStr
我不能使用将提供method
参数的Python 2.7 。
渺小:一样:
xmlDocument = xml.dom.minidom.parseString(xmlStr)
xmlStr = xmlDocument.toprettyxml(indent='', newl='', encoding='UTF-8')
最简单的解决方案可能是使用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
或为空字符串的属性)
问题内容: 我使用的框架会不时返回格式错误的字符串,其中包含“空”字符。 例如,“ foobar”表示为:[,f,o,o,b,a,r] 第一个字符不是空格(’‘),因此System.out.printlin()将返回“ foobar”而不是“ foobar”。但是,String的长度是7,而不是6。显然,这使大多数String方法(等于,拆分,子字符串等)变得无用。有没有办法从字符串中删除空字符?
问题内容: 我正在使用“带有CSV和SOAP / xml请求的Jmeter”。我的测试在80个数据集中运行,并且CSV中的某些字段对于测试问题必须为空。 我的JMeter构建:-ThreadGroup -CSV数据-SOAP / XML -XPathExtractor-结果 CSV,例如矩阵表,多行和多列。 SOAP / XML 我的问题:当Jmeter替换了变量时: 当某些为空时一切都很好 系统
问题内容: 在Go中从某个任意字符串中剥离所有空格的最快方法是什么。 我从字符串包中链接了两个函数: 有人有更好的方法吗? 问题答案: 以下是一些用于从字符串中剥离所有空格字符的不同方法的基准:(源数据): :用途; 随着遇到更多的非空白字符,逐渐增加分配的空间量 :和; 产生大量中间数据 用途; 执行一次分配,但是如果源字符串主要是空格,则可能会总体上分配。 package main_test
问题内容: 我想从python中的字符串列表中删除所有空字符串。 我的想法如下: 有没有更多的Python方式可以做到这一点? 问题答案: 我会用: Python 3从返回一个迭代器,因此应包装在对的调用中
问题内容: 我从数据库查询中接收到一个字符串,然后在将其放入CSV文件之前,删除了所有HTML标记,回车符和换行符。唯一的事情是,我找不到从字符串 之间 删除 多余的 空白的方法。 __ 删除内部空白字符的最佳方法是什么? 问题答案: 不确定确切要什么,但是有两种情况: 如果你只是处理过剩上,你可以使用字符串的开头或结尾,或者将其删除。 如果你正在处理一个字符串中多余的空格考虑多 用单 。 例:
问题内容: 我有一个像这样的字符串: 我想删除字符串中的空格。我试过了,但这只删除了整个字符串前后的空格。我也尝试过,但后来=也被删除了。 如何使用以下方法实现字符串: 问题答案: 删除所有空格和不可见字符(例如,)。 并产生相同的结果。 第二个正则表达式比第一个正则表达式快20%,但是随着连续空格数量的增加,第一个正则表达式的性能优于第二个正则表达式。 如果不直接使用,则将值分配给变量: