我如何使用QName(python xml.etree.ElementTree?)

时间:2015-06-25 22:38:32

标签: python xml elementtree xml.etree qnames

我已经对QName做了相当多的阅读,但我找不到如何使用它的任何好例子。有人能给我一个简单的例子,说明如何使用QName并解释它将用于什么上下文?

1 个答案:

答案 0 :(得分:9)

在构造具有与包含元素不同的命名空间中的属性的XML文档时,可以使用

QName。示例(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