我有一组使用 xml.dom.minidom 创建的节点 xml.dom.Node 对象。我通过使用 Node 对象的 toxml() 方法将它们转换为字符串,将它们(单独)存储在数据库中。
问题是我有时希望能够使用某种解析器将它们转换回适当的 Node 对象。据我所知,python 附带的各种库使用 Expat,它不会解析像 '' 这样的字符串,或者任何不是正确的 xml 字符串的字符串。
那么,有人有任何想法吗?我意识到我可以以某种方式腌制节点,然后取消它们,但这感觉不愉快,我更愿意以我可以阅读的形式存储以进行维护。肯定有什么可以做到这一点?
为了回应表示这是可能的怀疑,我的意思的一个例子:
>>> import xml.dom.minidom
>>> x=xml.dom.minidom.parseString('<a>foo<b>thing</b></a>')
>>> x.documentElement.childNodes[0]
<DOM Text node "u'foo'">
>>> x.documentElement.childNodes[0].toxml()
u'foo'
>>> xml.dom.minidom.parseString(x.documentElement.childNodes[0].toxml())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
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
Run Code Online (Sandbox Code Playgroud)
换句话说,“.toxml()”方法不会创建 Expat(因此开箱即用的 …
在Office 365 Excel中,我有一个包含各种列的电子表格,例如:
00:01:39
00:00:32
00:00:44
00:03:10
Run Code Online (Sandbox Code Playgroud)
我已经检查过它们是"时间"格式.我可以使用它们添加它们+.例如,使用公式=M1 + M2 + M3 + M4但是如果我使用SUM,例如=SUM(M1:M4)我得到零(以时间格式).
我不确定我理解为什么这两个公式应该给出不同的答案.我想构建一个SUMIF所以希望能够在SUM这里使用而不是仅仅手动添加它们.出了什么问题?