如何在存在时获取无命名空间的节点名称?

0 投票
1 回答
1029 浏览
提问于 2025-04-18 12:29

我有一个XML文件,我需要从中提取一些节点名称,但它里面有命名空间。请问有没有办法把命名空间去掉?比如:

XAddr = response.getElementsByTagNameNS('*', 'XAddr')

for addr in XAddr:
    print addr.parentNode.tagName

打印出来的是:

tt:Device
tt:Events
tt:Imaging
tt:Media
tt:PTZ

我需要去掉tt:这个部分,但它可能不存在,或者也可能是其他的东西。

1 个回答

1

使用 str.split 方法可以把一个标签名和(可选的)命名空间分开;只需要取最后一部分。

>>> 'tt:Device'.split(':')[-1]  # with namespace
'Device'
>>> 'Device'.split(':')[-1]  # without namespace
'Device'

把下面的内容替换为:

addr.parentNode.tagName

用:

addr.parentNode.tagName.split(':')[-1]

撰写回答