当前位置: 首页 > 面试题库 >

用python迭代编写XML节点

柏高丽
2023-03-14
问题内容

读取XML的方式有很多,既可以一次(DOM),也可以一次一位(SAX)。我已经使用SAX或lxml迭代读取大型XML文件(例如6.5GB 压缩的
Wikipedia转储)。

但是,在对该XML文件进行了一些迭代处理(在Python中使用ElementTree)之后,我想将(新)XML数据写到另一个文件中。

是否有用于迭代写出XML数据的库?我 可以
创建XML树,然后将其写出,但是如果没有ram的话就不可能实现。是否有将XML树迭代地写入文件的方法?一次一点?

我知道我可以自己用print "<%s>" % tag_name等生成XML ,但这似乎有点… 骇人


问题答案:

Fredrik
Lundh的elementtree.SimpleXMLWriter将使您逐步写出XML。这是模块中嵌入的演示代码:

from elementtree.SimpleXMLWriter import XMLWriter
import sys

w = XMLWriter(sys.stdout)

html = w.start("html")

w.start("head")
w.element("title", "my document")
w.element("meta", name="generator", value="my application 1.0")
w.end()

w.start("body")
w.element("h1", "this is a heading")
w.element("p", "this is a paragraph")

w.start("p")
w.data("this is ")
w.element("b", "bold")
w.data(" and ")
w.element("i", "italic")
w.data(".")
w.end("p")

w.close(html)


 类似资料:
  • 前面章节中,已经对列表(list)、元组(tuple)、字典(dict)、集合(set)这些序列式容器做了详细的介绍。值得一提的是,这些序列式容器有一个共同的特性,它们都支持使用 for 循环遍历存储的元素,都是可迭代的,因此它们又有一个别称,即迭代器。 从字面来理解,迭代器指的就是支持迭代的容器,更确切的说,是支持迭代的容器类对象,这里的容器可以是列表、元组等这些 Python 提供的基础容器,

  • 上面简单的介绍了一下迭代,迭代是 Python 最强大的功能之一,是访问集合元素的一种方式。现在正式进入主题:迭代器,迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。 迭代器只能往前不会后退。 迭代器有两个基本的方法:iter() 和 next(),且字符串,列表或元组对象都可用于创建迭代器,迭代器对象可以使用常规 for 语句进行遍历,也

  • 主要内容:src/runoob/graph/DenseGraphIterater.java 文件代码:,src/runoob/graph/SparseGraphIterater.java 文件代码:图论中最常见的操作就是遍历邻边,通过一个顶点遍历相关的邻边。邻接矩阵的遍历邻边的时间复杂度为 O(V),邻接表可以直接找到,效率更高。 邻接矩阵迭代: ... public Iterable <Integer > adj ( int v ) {     assert v >= 0 && v < n ;

  • 问题内容: 如果我有一个包含的列表,并且想编写一个迭代器,以便对以’a’开头的元素进行迭代,那么我可以编写自己的迭代器吗?我怎样才能做到这一点 ? 问题答案: 当然。迭代器只是接口的实现。如果您使用中的现有可迭代对象(例如),则需要对其进行子类化并覆盖其功能,以便返回自己的对象,或者提供一种在特殊实例中包装标准迭代器的方法(具有被更广泛使用的优势)等。

  • 问题内容: 我在工作中使用的程序使用Python作为脚本语言。我试图在插入列表时修改列表感到困惑。另外,我在for循环中有一些逻辑,希望将列表的一部分从浮点数转换为文本。最后,所有文本必须正好为4个空格。在我为解决这个问题而进行的研究中,我遇到了许多其他的模拟问题,这些其他问题试图在迭代列表时尝试修改列表。但是我觉得我的问题很独特,因为我试图在遍历列表时将列表从浮点数修改为文本。 我实际上找到了解