1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python xml解析dom_如何解析python中表示xml.dom.minidom节点的字符串?

python xml解析dom_如何解析python中表示xml.dom.minidom节点的字符串?

时间:2021-05-03 03:52:17

相关推荐

python xml解析dom_如何解析python中表示xml.dom.minidom节点的字符串?

我有一个使用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()效果的东西

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。