使用Python元素树访问XMLNS属性?

如何使用ElementTree访问NS属性

以下是:

<数据xmlns=”http://www.foo.net/a“xmlns:a=”http://www.foo.net/a“book=“1”category=“ABS”date=“2009-12-22”>

当我尝试root.get(’xmlns’)时,我没有得到任何回复,类别和日期都可以,非常感谢您的帮助

我想element.tag就是你要找的。请注意,您的示例缺少尾部斜杠,因此它是不平衡的,无法解析。我在示例中添加了一个

&gt&燃气轮机&燃气轮机;从xml.etree导入ElementTree作为ET
&燃气轮机&燃气轮机&燃气轮机;数据=“”<数据xmlns=”http://www.foo.net/a"
...                 xmlns:a=”http://www.foo.net/a"
...                 book=“1”category=“ABS”date=“2009-12-22”/>”
&燃气轮机&燃气轮机&燃气轮机;元素=ET.fromstring(数据)
&燃气轮机&燃气轮机&燃气轮机;要素
<元素{http://www.foo.net/a}数据位于1013b74d0>
&燃气轮机&燃气轮机&燃气轮机;element.tag
'{http://www.foo.net/a}数据的
&燃气轮机&燃气轮机&燃气轮机;元素属性
{'category':'ABS','date':'2009-12-22','book':'1'}

如果您只想知道xmlns URI,可以使用如下函数将其拆分:

定义标记uri和名称(元素):
如果元素标记[0]=“{”:
uri,ignore,tag=elem.tag[1:].partition(“}”)
其他:
uri=无
tag=elem.tag
返回uri,标记

有关ElementTree中名称空间和限定名称的更多信息,请参阅effbot的示例

发表评论