如何在xml字符串中访问xmlns键,val

时间:2015-12-23 23:23:56

标签: python xml python-3.x lxml

假设将以下XML加载到data(并且仅加载此数据):

<stream:stream to='host.com' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'>

我认为以下代码可以完成这项工作:

from lxml import etree as ET
from io import StringIO

parser = ET.XMLParser(recover=True)

e = ET.parse(StringIO(data), parser)
root = e.getroot()

for key, val in root.items():
    print(key, val)

输出只是:

to host.com
version 1.0

如何访问xmlns='jabber:client'更重要的是为什么这不是结果的一部分?

我从来都不喜欢XML,而外部命名空间定义的全部内容都不符合我的喜好,所以我已经避免了一点,也许我在这里缺少一些基础知识?

1 个答案:

答案 0 :(得分:0)

您可以通过查看.nsmap的{​​{1}}属性来查看节点的命名空间。