Как прочитать тег внутреннего уровня из xml с помощью minidom и python

<?xml version="1.0" encoding="UTF-8"?><cfdi:Comprobante Version="3.3" xmlns:cfdi="http://www.sat.gob.mx/cfd/3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd " Serie="KNS" Folio="44" Fecha="2018-02-01T09:19:56" NoCertificado="00001000000407880000" Certificado="MIIGMzCCBBug...."" Moneda="MXN" TipoDeComprobante="I" MetodoPago="PUE" FormaPago="99" CondicionesDePago="Contado" SubTotal="540.00" Total="626.40" LugarExpedicion="11320" Sello="JKVJ""><cfdi:Emisor Rfc="GKM060127GP4" Nombre="GRUPO KROME DE MEXICO, SA DE CV" RegimenFiscal="601"/>
<cfdi:Receptor Rfc="IBS000800000" Nombre="IB Sistemas, S.A. de C.V."  UsoCFDI="G03"/>
<cfdi:Conceptos><cfdi:Concepto ClaveProdServ="82101500" Cantidad="2.00" ClaveUnidad="HC" Descripcion="Tarjetas de presentación, impresas en offset digital." ValorUnitario="270.00" Importe="540.00"><cfdi:Impuestos><cfdi:Traslados><cfdi:Traslado Base="540.00" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="86.40"/></cfdi:Traslados></cfdi:Impuestos></cfdi:Concepto></cfdi:Conceptos><cfdi:Impuestos TotalImpuestosTrasladados="86.40"> <cfdi:Traslados><cfdi:Traslado Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000"  Importe="86.40"/></cfdi:Traslados> </cfdi:Impuestos><cfdi:Complemento><tfd:TimbreFiscalDigital xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd" Version="1.1" UUID="5CA56521-0763-11E8-87CC-00155D014007" FechaTimbrado="2018-02-01T09:19:57" RfcProvCertif="TBN040609RKA" SelloCFD="JKVJ"" NoCertificadoSAT="00001000000403557578" SelloSAT="jXmC54X9fW""/></cfdi:Complemento></cfdi:Comprobante>

У меня есть файл xml (эта схема используется в мексиканской системе притока — SAT для создания счетов и управления ими) со следующей структурой:

Из которого я хочу получить определенные данные. Я использую python 3.5 и minidom. Мне удалось получить большую часть данных, но я не смог получить данные поля «totalImpuestosTrasladados».

Я не знаю, почему "getElementsByTagName" работает для некоторых полей, но не для этого.

Любая помощь очень ценится


person Alejandro Jourdan    schedule 09.02.2018    source источник


Ответы (1)


Как я вижу, у вас есть namespaces в вышеупомянутом XML. Чтобы получить элементы с использованием имен тегов, вам нужно будет использовать getElementsByTagNameNS(namespace, tag) с соответствующими пространствами имен, и вы получите правильный результат поиска.

Подробнее об этом можно прочитать в поиске пространства имен элементов.

person Rohit Kumar    schedule 09.02.2018