Я использую l xml для разбора XML из внешней службы, которая имеет пространства имен, но не регистрирует их с xmlns
. Я пытаюсь зарегистрировать его вручную с помощью register_namespace
, но, похоже, это не сработает.
from lxml import etree
xml = """
<Foo xsi:type="xsd:string">bar</Foo>
"""
etree.register_namespace('xsi', 'http://www.w3.org/2001/XMLSchema-instance')
el = etree.fromstring(xml) # lxml.etree.XMLSyntaxError: Namespace prefix xsi for type on Foo is not defined
Что мне не хватает? Как ни странно, глядя на исходный код l xml, чтобы попытаться понять, что я могу делать неправильно, кажется, что пространство имен xsi
должно уже быть одним из пространств имен по умолчанию.