[lxml-dev] eetree.fromsring() returns Element, expected ElementTree
David Gardner
dgardner at creatureshop.com
Tue Apr 28 01:59:54 CEST 2009
Ran into something that maybe a bug, or at least isn't clear from the
documentation
[http://codespeak.net/lxml/api/lxml.etree-module.html#fromstring]
because it doesn't mention a return type for etree.fromstring(). I had
expected it to behave similar to etree.parse().
Currently I have a work-around of:
tree = etree.ElementTree(etree.fromstring(xml_data))
See below for simple test, and output.
-------
#!/usr/bin/python
import sys,StringIO
from lxml import etree
print "lxml.etree: ", etree.LXML_VERSION
print "libxml used: ", etree.LIBXML_VERSION
print "libxml compiled: ", etree.LIBXML_COMPILED_VERSION
print "libxslt used: ", etree.LIBXSLT_VERSION
print "libxslt compiled: ", etree.LIBXSLT_COMPILED_VERSION
some_xml_data = "<root>data</root>"
tree1=etree.fromstring(some_xml_data)
tree2=etree.parse(StringIO.StringIO(some_xml_data))
print type(tree1)
print type(tree2)
--------------
lxml.etree: (2, 1, 5, 0)
libxml used: (2, 7, 3)
libxml compiled: (2, 6, 32)
libxslt used: (1, 1, 24)
libxslt compiled: (1, 1, 24)
<type 'lxml.etree._Element'>
<type 'lxml.etree._ElementTree'>
'lxml.etree._Element' object has no attribute 'write'
--
David Gardner
Pipeline Tools Programmer, "Sid the Science Kid"
Jim Henson Creature Shop
dgardner at creatureshop.com
More information about the lxml-dev
mailing list