On 06/27/2013 07:30 AM, Stefan Behnel wrote:
Amaury Forgeot d'Arc, 27.06.2013 13:13:
2013/6/27 Martin Mueller
So to be quite clear etree.XML and etree.fromstring are different names for the same thing, and regardless of your choice either will produce the same result. Sort of like 'int' and 'integer' for specifying a column type in MySQL. True? I checked the source to be sure. There is a slight difference, if you install a custom parser with set_default_parser().
etree.fromstring() will always use this installed parser, but etree.XML() will only use it if it inherits from XMLParser, otherwise it will use its own XMLParser. (etree.HTML() has a similar behavior) Right. That's because the XML() and HTML() function names are actually explicit about the expected input format, whereas fromstring() just passes on the input to whatever parser the user chose and can thus handle "anything".
The main idea is really that XML()/HTML() can be used to "decorate" literals. Apart from that, all three do the same thing.
Stefan Thanks, that's good to know. It wasn't clear from the docs.
FYI-I've spent many hours reading the docs and API over the last few weeks. I even tried skimming the source a few times to answer some questions, but didn't have much luck -- it's pretty complicated for someone who's new to Python and has never written Python bindings for a C library. :) -ofer