Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Python
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-02-2018
tsk tsk is offline
Miembro
 
Registrado: dic 2017
Posts: 54
Poder: 7
tsk Va por buen camino
Sólo uno de los nodos de cfdi:Impuestos contiene el atributo TotalImpuestosTrasladados

esto bastaría para encontrar cual de ellos tiene el atributo.

Código:
for node in dom.getElementsByTagName("cfdi:Impuestos"):
    print node.getAttribute("TotalImpuestosTrasladados")
Aunque con lxml.etree y algo de xpath podrías hacer lo mismos.

Código:
from xml.dom.minidom import parse, parseString
from lxml import etree as ET

dom = parse("cfdi.xml")

print("-------------------------")

for node in dom.getElementsByTagName("cfdi:Impuestos"):
    print(node.getAttribute("TotalImpuestosTrasladados"))

#Con lxml.etree

d = ET.parse("cfdi.xml")

ns = {"cfdi":"h t t p : / / www . sat.gob.mx / cfd / 3"}
print("-------------------------")
#---------------------------
node = d.findall("//{h t t p : / / www . sat.gob.mx / cfd / 3}Impuestos/[@TotalImpuestosTrasladados]")[0]

for key,val in node.items():
    print(key,val)

print(node.xpath("@TotalImpuestosTrasladados")[0])

#---------------------------
print("--------------------------")
node = d.findall("//cfdi:Impuestos/[@TotalImpuestosTrasladados]",ns)[0]

for key,val in node.items():
    print(key,val)

print(node.xpath("@TotalImpuestosTrasladados")[0])

#---------------------------
print("----------------------------")
E = ET.XPathEvaluator(d,namespaces=ns)

print(E("//cfdi:Impuestos/@TotalImpuestosTrasladados")[0])
Sólo elimina los espacios en h t t p : / / www . sat.gob.mx / cfd / 3 y debe de funcionar.

De ejemplo use uno de los XML que vienen en la página del SAT y el resultado es el siguiente.

Código:
-------------------------



363104
-------------------------
('TotalImpuestosRetenidos', '1196492')
('TotalImpuestosTrasladados', '363104')
363104
--------------------------
('TotalImpuestosRetenidos', '1196492')
('TotalImpuestosTrasladados', '363104')
363104
----------------------------
363104
Responder Con Cita
  #2  
Antiguo 09-02-2018
jourdan jourdan is offline
Miembro
 
Registrado: may 2003
Ubicación: Mexico
Posts: 151
Poder: 22
jourdan Va por buen camino
Muchisimas gracias, me pongo a hacer pruebas en este momento!
Saludos
__________________
Alejandro Jourdan
Responder Con Cita
  #3  
Antiguo 09-02-2018
jourdan jourdan is offline
Miembro
 
Registrado: may 2003
Ubicación: Mexico
Posts: 151
Poder: 22
jourdan Va por buen camino
Me funciono muy bien!
Muchismas gracias
__________________
Alejandro Jourdan
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
leer nodo tfd de un cfdi xml jourdan Varios 18 28-08-2018 22:04:12
¿ Como leer un archivo INI externo ? etamburelli Varios 12 01-11-2016 21:19:57
C++Builder 6 CFDI Mexico ¿Como agregar nodo dentro de otro nodo como hijo? JXJ C++ Builder 0 10-03-2016 03:51:01
como abrir un archivo .hlp desde mi aplicacion usando un menu federiconqn21 Varios 2 20-05-2008 12:02:37
como leer n caracteres de un archivo manolop Varios 6 18-12-2007 22:50:06


La franja horaria es GMT +2. Ahora son las 06:43:26.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi