Как я могу заставить lxml xpath соответствовать двум пространствам имен, таким как cims и cims51, но не всем:
'cimc': "urn:iec62325.351:tc57wg16:451-3:capacitydocument:8:0",
'cimc71': "urn:iec62325.351:tc57wg16:451-3:capacitydocument:7:1",
'cims': "urn:iec62325.351:tc57wg16:451-2:scheduledocument:5:0",
'cims51': "urn:iec62325.351:tc57wg16:451-2:scheduledocument:5:1",
:
mrids = xml.xpath(tag, namespaces=NAMESPACES)
:
TypeError: failed extracting xpath tag='//cims51:mRID' from xml
Тег был //cims:mRID, как его объединить, чтобы он соответствовал как cims, так и cims51.
Я знаю, что могу использовать тег типа:
mrids = xml.xpath(r"//*[local-name()='mRID']")
Но тогда я получаю msirds из всех таймсерий в сообщении.
Я могу сделать:
mrids = xml.xpath('//cims:mRID | //cims51:mRID', namespaces=NAMESPACES)
Но существует множество старых версий cmic.
Есть ли способ сделать:
mrids = xml.xpath('//cims*:mRID', namespaces=NAMESPACES)