LXML: can't register namespace
Peter Otten
__peter__ at web.de
Fri Mar 9 08:11:41 EST 2018
Stefan Behnel wrote:
> Andrew Z schrieb am 07.03.2018 um 05:03:
>> Hello,
>> with 3.6 and latest greatest lxml:
>>
>> from lxml import etree
>>
>> tree = etree.parse('Sample.xml')
>> etree.register_namespace('','http://www.example.com')
>
> The default namespace prefix is spelled None (because there is no prefix
> for it) and not the empty string.
Does that mean the OP shouldn't use register_namespace() at all or that he's
supposed to replace "" with None?
If the latter -- it looks like None accepted either:
(lxml_again)$ python
Python 3.4.3 (default, Nov 28 2017, 16:41:13)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from lxml import etree
>>> etree.register_namespace(None, "http://www.example.com")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "src/lxml/etree.pyx", line 200, in lxml.etree.register_namespace
(src/lxml/etree.c:11612)
File "src/lxml/apihelpers.pxi", line 1442, in lxml.etree._utf8
(src/lxml/etree.c:32933)
TypeError: Argument must be bytes or unicode, got 'NoneType'
>>> etree.__version__
'4.1.1'
More information about the Python-list
mailing list