- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一组使用 xml.dom.minidom 创建的节点 xml.dom.Node 对象。我通过使用 Node 对象的 toxml() 方法将它们转换为字符串,将它们(单独地)存储在数据库中。
问题是有时我希望能够使用某种解析器将它们转换回适当的 Node 对象。据我所知,python 附带的各种库都使用 Expat,它不会解析像 '' 之类的字符串,也不会解析任何不正确的 xml 字符串。
那么,有人有什么想法吗?我意识到我可以以某种方式对节点进行 pickle,然后再对它们进行 unpickle,但这感觉很不愉快,我宁愿以一种我可以阅读的形式存储,以供维护之用。肯定有什么东西可以做到这一点?
为了回应表示这是可能的疑问,我的意思是一个例子:
>>> 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
换句话说,“.toxml()”方法不会创建 Expat(因此开箱即用的 parseString)将解析的内容。
我想要的是将 u'foo' 解析为文本节点的东西。 IE。可以逆转 .toxml() 效果的东西
最佳答案
from xml.dom.minidom import parseString
try:
node = parseString('')
except Exception:
node = None
关于python - 如何在 python 中解析表示 xml.dom.minidom 节点的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2891589/
我有以下任一代码: import urllib from xml.dom import minidom res = urllib.urlopen('https://www.google.com/web
我已经阅读了这里有关此问题的几个答案,但仍然无法解决它。 基本上,我想打印子节点的nodeValue。 这是 xml: true 2 500 10000
快速提问,当您看到错误“builtins.IndexError: list index out of range”时,正确的解决方案是什么? 这是引用另一个 thread 我已经开始了,但我不想让它出
我有一个具有这种结构的 xml 文件: EB 23242 EB 我想检查visit标签中是否存在每一列,如果不存在我想返回Non
我正在将一段 JS 代码转换为 Python,并且我一直在使用 mini DOM,但某些事情无法正常工作。他们在 JavaScript 中运行时正在查找。我进行转换是因为我想要一致的更改/顺序(即添加
我有一个具有以下结构的 xml 文件: ... ... ...
我递归地遍历 XML 中的所有节点: def verify_elements_children(root): if root.childNodes: for node in r
我需要从此 XML 文件读取数据。我不知道如何从这个 XML 文件中读取数据 aaaaa、bbbbb、ccccc、ddddd、eeeee、fffff 和 ggggg。
我正在寻找使用 xml minidom 提取 xml 文件的内容,示例如下: text1 text2 text3 以下代码仅提取“
8 小时以来,我现在尝试解析 XML 并将 5 行文本添加到 xml 中。我真的没有取得任何进展,writexml、toxml 和 saveXML 似乎都无法在 minidom 库中工作 我们要解析
我有以下功能: def removeNodes(mydom, name): nodeList = mydom.getElementsByTagName('option') # in p
我正在使用Python的minidom解析文档,例如: This tag contains a "" string ""字符串导致 xml.parsers.expat.ExpatError:
我目前正在使用 IRC Bot,并希望从如下所示的 XML 文件中检索配置: HOST1 6667 CHANNAME1 CHANNAME2
是否可以使用 minidom 获取节点的名称? 例如我有一个节点: 我想做的是存储值 heading 以便我可以将它用作字典中的键。 我能得到的最接近的是这样的: [] 我确定我在这里忽略了一些非常
我想遍历一个dom节点的所有属性并获取名称和值 我试过这样的事情(文档对此不是很详细所以我猜了一点): for attr in element.attributes: attrName = a
给定 如何在不遍历每个标签并检查属性的情况下立即获取名称为“frame.len”的字段? 最佳答案 我认为你做不到。 来自父element , 你需要 for subelement i
在使用 minidom 处理 XML 时,有没有一种方法可以保留属性的原始顺序? 假设我有:当我用 minidom 修改它时,属性按字母顺序重新排列为蓝色、绿色和红色。我想保留原始订单。 我正在通过遍
我目前面临的 XML 看起来像这样: 345754 这包含在层次结构中。我已经解析了 xml,并希望通过搜索“345754”找到 ID 节点。 最佳答案 vartec 的回答需要更正(抱歉,我不确定我
我有这个 xml 结构, 我如何检查 minidom,root 是 root,并且子元素始终是 followin 元素? ch
我正在使用 Python 和 minidom 将数据插入现有的 XML 文件中。当我这样做时,我得到了正确的 XML 代码,但它看起来不像我想要的那样。这是我的 xml 文件开头的示例。
我是一名优秀的程序员,十分优秀!