由於你的代碼使用parseString和getElementsByTagName
,我假設你正在使用minidom。在這種情況下,嘗試:
dom.getElementsByTagNameNS('*', 'Scopes')
它不會在the docs這麼說,但如果你在xml/dom/minidom.py
的源代碼看,你會看到getElementsByTagNameNS
電話_get_elements_by_tagName_ns_helper
這是這樣定義的:
def _get_elements_by_tagName_ns_helper(parent, nsURI, localName, rc):
for node in parent.childNodes:
if node.nodeType == Node.ELEMENT_NODE:
if ((localName == "*" or node.localName == localName) and
(nsURI == "*" or node.namespaceURI == nsURI)):
rc.append(node)
_get_elements_by_tagName_ns_helper(node, nsURI, localName, rc)
return rc
注意,當nsURI
等於*
,只有localName
需要匹配。
例如,
import xml.dom.minidom as minidom
content = '''<root xmlns:f="foo"><f:test/><f:test/></root>'''
dom = minidom.parseString(content)
for n in dom.getElementsByTagNameNS('*', 'test'):
print(n.toxml())
# <f:test/>
# <f:test/>