XML:
<?xml version="1.0" encoding="windows-1251"?>
<xdms:communication xdms:version="1.0" xmlns:xdms="http://blablabla.com/IEDMS">
<xdms:header xdms:type="Документ" xdms:uid="886B92F1-0D7D-48AE-84AF-D440A4ED9028" xdms:created="2014-02-20T10:35:07.8559394+04:00">
</xdms:header>
<xdms:document xdms:uid="F68B21E0-A8EA-4059-8585-29222DFCD744">
</xdms:communication>
скрипт:
import xml.dom.minidom
dom = xml.dom.minidom.parse('C:\\1\\document.xml')
docinfoNS=dom.getElementsByTagNameNS('*','document')
uidDocNS = docinfoNS[0].getAttributeNS('http://blablabla.com/IEDMS','uid')
print(docinfoNS)
print(uidDocNS)
и получим желанные
[<DOM Element: xdms:document at 0x29e6440>]
F68B21E0-A8EA-4059-8585-29222DFCD744
важным моментов является правильно указать пространсво имен для getAttributeNS когда парсим по атрибутам, так называемый namespaceURI. пространство имен берется из самой XML:
<xdms:communication xdms:version="1.0" xmlns:xdms="http://blablabla.com/IEDMS">
тоесть в моем случаи это
http://blablabla.com/IEDMS
Он может быть совершенно любым, а не только распространненые, открытые и доступные всем схемы, как показано во всех примерах. к примеру мой нигде не опубликован, и по сути по этому адресу ничего нет. Когда парсим по тегам для getElementsByTagNameNS можно спокойно ставить * для параметра namespaceURI, тогда будет парсится независимо от префикса и схем.