的test.xml:
<?xml version="1.0" encoding="utf-8"?>
<Root xmlns="http://example.com" xmlns:foo="http://example.com/bar">
<foo:Child>yikes</foo:Child>
</Root>
test.py:
from lxml import objectify
root = objectify.fromstring(file('test.xml').read())
print root.attrib
输出:
{}
如何获取前缀声明?即类似的东西:
{
"xmlns": "http://example.com",
"xmlns:foo": "http://example.com/bar"}
更新:
root.keys()
,root.items()
和root.values()
分别产生[]
,[]
和{}
。
答案 0 :(得分:2)
Element
个对象有一个名为nsmap
的属性,它包含元素上下文的所有已知命名空间。在tutorial中提到。
>>> root.nsmap
{None: "http://example.com", "foo": "http://example.com/bar"}
答案 1 :(得分:0)
import xml.etree.ElementTree as ET
tree = ET.parse("test.xml")
root = tree.getroot()
print(root.attrib)
输出:
{'xmlns':'http://example.com''xmlns:foo'='http://example.com/bar'}
希望有所帮助