[XML-SIG] How do I replace multiple elements in a document?(using ElementTree)
Fredrik Lundh
fredrik at pythonware.com
Wed Nov 30 17:27:38 CET 2005
Tony McDonald wrote:
> I did have this,
>
> from elementtree.ElementTree import XML, ElementTree, Element,
> SubElement, dump
>
> and went to this;
>
> from cElementTree import XML, ElementTree, Element, SubElement, dump
>
> Which imports fine, but there's something amiss because;
> root = ElementTree(file=filename)
> ...
> elements = root.getiterator()
> print "LEN", len(elements)
>
> which gave 634 elements using python ElementTree but gives len() of
> unsized object when using the eElementTree version, and there does
> seem to be something amiss ...
the getiterator method is defined to return "something that you can
iterate over", which is not necessarily a sequence object.
in ElementTree, it happens to be a list (at least in the 1.2 series), but
cElementTree returns a generator instead.
no matter what version you're using, this
for elem in root.getiterator():
...
is guaranteed to work. if you want a list, you can always use the list
constructor. e.g.
print "LEN", len(list(root.getiterator()))
</F>
More information about the XML-SIG
mailing list