在python中从ElementTree中删除xml文本
我试图从XML文档中提取转义节点。节点的原始文本如下所示:在python中从ElementTree中删除xml文本,python,xml,decoding,elementtree,Python,Xml,Decoding,Elementtree,我试图从XML文档中提取转义节点。节点的原始文本如下所示: <Notes>{"Phase": 0, "Flipper": 0, "Guide": 0, "Sample": 0, "Triangle8": 0, "Triangle5": 0, &
<Notes>{"Phase": 0, "Flipper": 0, "Guide": 0,
"Sample": 0, "Triangle8": 0, "Triangle5": 0,
"Triangle4": 0, "Triangle7": 0, "Triangle6": 0,
"Triangle1": 0, "Triangle3": 0, "Triangle2": 0}</Notes>
我希望得到:
{"Phase": 0, "Flipper": 0, "Guide"": 0,
"Sample": 0, "Triangle8": 0, "Triangle5": 0,
"Triangle4": 0, "Triangle7": 0, "Triangle6": 0,
"Triangle1": 0, "Triangle3": 0, "Triangle2": 0}
但是,相反,我得到了:
{"Phase": 0, "Flipper": 0, "Guide": 0,
"Sample": 0, "Triangle8": 0, "Triangle5": 0,
"Triangle4": 0, "Triangle7": 0, "Triangle6": 0,
"Triangle1": 0, "Triangle3": 0, "Triangle2": 0}
如何获取未转义字符串?使用
HTMLParser.HTMLParser()
:
saxutils处理
、
和&代码>,但它不处理“
由于python3.4
可以使用html.unescape
>>> from html import unescape
>>> unescape('"')
'"'
由于某种原因,我没有在Python2.7.5
中使用escape for”
,但我找到了一个解决方法,使用replace
函数在XML文件中获得“而不是”
,如下所示:
以open(xmlfilename,'w')作为f的:
f、 写入(myxml.toprettyxml().replace(“,”))
非常正确<代码>“
不需要在XML中引用,因此saxutils模块不需要处理这一点(就像ElementTree)。谢谢。这样做了。总有一天,我将不得不与服务器开发人员交谈,找出服务器为什么首先要转义引号。ElementTree不会取消显示”
因为您通常不需要在XML中转义“
。出于同样的原因,我的答案是错误的。
In [8]: import HTMLParser
In [11]: HTMLParser.HTMLParser().unescape('"')
Out[11]: u'"'
In [9]: import xml.sax.saxutils as saxutils
In [10]: saxutils.unescape('"')
Out[10]: '"'
>>> from html import unescape
>>> unescape('"')
'"'