Я создаю XML с использованием синтаксиса E-Factory пакета ElementMaker
из lxml.builder
в Python 3.7.Мне необходимо добавить атрибут namespaced к элементу, но я не могу найти документацию или подтверждение этой функции в ElementMaker
.
Пример целевого xml (проблема заключается в создании атрибута gml:id
):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLDocument gml:id="THE_ID" xmlns:gml="some-uri">
body data...
</XMLDocument>
Что я пробовал:
from lxml.builder import ElementMaker
import lxml.etree as etree
NS = ElementMaker(nsmap={'gml': 'some-uri'})
my_doc = NS.XMLDocument('body data...', **{"gml:id": "THE_ID"})
print(etree.tostring(my_doc, pretty_print=True, encoding='utf-8', xml_declaration=True).decode('utf-8'))
Это исключение:
ValueError: Invalid attribute name 'gml:id'
Обратите внимание, что изменение двоеточия, например,тире ('gml-id'
) работает, но, конечно, это не ожидаемый результат.