python xml解析dom_如何解析python中表示xml.dom.minidom节点的字符串?
我有一个使用xml.dom.minidom创建的nodes xml.dom.Node对象的集合。通过使用Node对象的toxml()方法将它们转换为字符串,我将它们(单独)存储在数据库中。问题是,有时我希望能够使用某种解析器将它们转换回适当的节点对象。据我所见,python附带的各种库都使用Expat,它不会解析像“”这样的字符串,也不会解析任何不正确的xml字符串。那么,有人有什么想法吗?我意识
我有一个使用xml.dom.minidom创建的nodes xml.dom.Node对象的集合。通过使用Node对象的toxml()方法将它们转换为字符串,我将它们(单独)存储在数据库中。
问题是,有时我希望能够使用某种解析器将它们转换回适当的节点对象。据我所见,python附带的各种库都使用Expat,它不会解析像“”这样的字符串,也不会解析任何不正确的xml字符串。
那么,有人有什么想法吗?我意识到我可以以某种方式对节点进行pickle,然后将它们取消pickle,但这感觉很不愉快,我宁愿以一种可以阅读的形式存储,以便进行维护。肯定有什么东西能做到这一点?
对于表示这是可能的质疑,举一个例子说明我的意思:>>> import xml.dom.minidom
>>> x=xml.dom.minidom.parseString('foothing')
>>> x.documentElement.childNodes[0]
>>> x.documentElement.childNodes[0].toxml()
u'foo'
>>> xml.dom.minidom.parseString(x.documentElement.childNodes[0].toxml())
Traceback (most recent call last):
File "", line 1, in
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/xml/dom/minidom.py", line 1928, in parseString
return expatbuilder.parseString(string)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/xml/dom/expatbuilder.py", line 940, in parseString
return builder.parseString(string)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/xml/dom/expatbuilder.py", line 223, in parseString
parser.Parse(string, True)
xml.parsers.expat.ExpatError: syntax error: line 1, column 0
换句话说,“.toxml()”方法不会创建Expat(因此是现成的parseString)将解析的内容。
我想要的是将u'foo解析为文本节点的东西。一、 一些可以逆转.toxml()效果的东西
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)