当前位置:  开发笔记 > 编程语言 > 正文

来自字符串源的Python xml ElementTree?

如何解决《来自字符串源的PythonxmlElementTree?》经验,为你挑选了3个好方法。

ElementTree.parse从文件中读取,如果我已经在字符串中包含XML数据,我该如何使用它?

也许我在这里遗漏了一些东西,但是必须有一种方法可以使用ElementTree而无需将字符串写入文件并再次读取它.

xml.etree.elementtree



1> dgassaway..:

您可以将文本解析为字符串,从而创建Element,并使用该Element创建ElementTree.

import xml.etree.ElementTree as ET
tree = ET.ElementTree(ET.fromstring(xmlstring))

我刚刚遇到这个问题,文档虽然完整,但对于parse()fromstring()方法之间的使用差异并不是很直接.


第二行可以简单地是`root = ET.fromstring(xmlstring)`.等于`ET.parse('file.xml').getroot()`:https://docs.python.org/3.6/library/xml.etree.elementtree.html#parsing-xml
@Anton,如OP所述,其想法是生成ElementTree,而不是Element.例如,当您想要使用ElementTree.write()时,这很有用.

2> Jim H...:

如果您正在使用xml.etree.ElementTree.parse从文件解析,则可以使用xml.etree.ElementTree.fromstring从文本中解析.

请参见xml.etree.ElementTree


问题是ElementTree.fromstring生成一个元素,而不是ElementTree!任何人都知道如何解决这个问题?
@SamuelLampa见[dgassaway的回答](http://stackoverflow.com/a/18281386/12744),使用`ET.ElementTree(ET.fromstring(xmlstring))`
要获得正确答案,请参阅@dgassaway提供的答案
与@SamuelLampa提到的问题相同.我不是ElementTree,我不能为此做`getroot()`

3> karlcow..:

你需要xml.etree.ElementTree.fromstring(文本)

from xml.etree.ElementTree import XML, fromstring, tostring
myxml = fromstring(text)

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有