Last active
July 29, 2020 02:41
-
-
Save moylop260/edcb84fe3865b1573c997047a0fcaa04 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from lxml import objectify | |
xml = objectify.fromstring("""<?xml version="1.0" encoding="utf-8"?> | |
<cfdi:Comprobante | |
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
xmlns:cfdi="http://www.sat.gob.mx/cfd/3" | |
xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv32.xsd" | |
xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" | |
> | |
<cfdi:Emisor rfc="XYZU8801017YA" nombre="MOYLOP260"> | |
<cfdi:DomicilioFiscal calle="Calle value"/> | |
<cfdi:RegimenFiscal Regimen="Regimen value" /> | |
</cfdi:Emisor> | |
<cfdi:Complemento xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital"> | |
<tfd:TimbreFiscalDigital | |
xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/TimbreFiscalDigital/TimbreFiscalDigital.xsd" | |
xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" | |
version="1.0" UUID="UUID value"/> | |
</cfdi:Complemento> | |
</cfdi:Comprobante>""") | |
print "xml.Emisor.DomicilioFiscal.get('calle'):", xml.Emisor.DomicilioFiscal.get('calle') | |
print "xml.Emisor.RegimenFiscal.get('Regimen'):", xml.Emisor.RegimenFiscal.get('Regimen') | |
tfd = xml.Complemento.xpath('tfd:TimbreFiscalDigital[1]', | |
namespaces={'tfd': 'http://www.sat.gob.mx/TimbreFiscalDigital'}) | |
print "tfd[0].get('UUID'):", tfd[0].get('UUID') | |
tfd = xml.Complemento.xpath('tfd:TimbreFiscalDigital[1]', namespaces=xml.nsmap) | |
print "tfd[0].get('UUID'):", tfd[0].get('UUID') | |
print "uuid with 100%% xpath", xml.Complemento.xpath('tfd:TimbreFiscalDigital[1]/@UUID', namespaces=xml.nsmap) | |
print "uuid with 100%% xpath not list", (xml.Complemento.xpath('tfd:TimbreFiscalDigital[1]/@UUID', namespaces=xml.nsmap) + [0])[0] | |
# print "dir(xml.Complemento)", [attr for attr in dir(xml.Complemento) if not attr.startswith('_')] | |
try: | |
print "xml.Complemento.TimbreFiscalDigital: ", xml.Complemento.TimbreFiscalDigital | |
except AttributeError: | |
print "Why I have a AttributeError here?" | |
tfd2 = objectify.fromstring("""<?xml version="1.0" encoding="utf-8"?> | |
<tfd:TimbreFiscalDigital | |
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/TimbreFiscalDigital/TimbreFiscalDigital.xsd" | |
xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" | |
version="1.0" UUID="UUID value"/>""") | |
print "tfd2.get('UUID'):", tfd[0].get('UUID') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment