Как мне использовать QName (python xml.etree.ElementTree?)

Я довольно много читал о QName, но не могу найти хороших примеров того, как его использовать. Может ли кто-нибудь дать мне простой пример того, как использовать QName, и объяснить, в каком контексте он будет использоваться?

1 ответ

QName может использоваться при создании XML-документов с атрибутами, которые находятся в другом пространстве имен, чем содержащий элемент. Пример (Python 2.7):

from xml.etree import ElementTree as ET

NS1 = "http://example1.com" 
NS2 = "http://example2.com"

ET.register_namespace("x", NS1) 
ET.register_namespace("y", NS2)

qname1 = ET.QName(NS1, "root")    # Element QName 
qname2 = ET.QName(NS2, "attr")    # Attribute QName

root = ET.Element(qname1, {qname2: "test"}) 
print ET.tostring(root)

Выход:

<x:root xmlns:x="http://example1.com" xmlns:y="http://example2.com" y:attr="test" />

Одним из приложений, для которого это может быть полезно, является XLink.

Другие вопросы по тегам