buenas noche a todos tengo un proyecto el cual consiste en tomar el xml de facturas ya timbradas para leerlas en vb.net y marcarlas como pagadas desde X carpeta
el maestro nos puso este proyecto como final y la verdad que no es mi campo :/ cualquier aporte se los agradeceria un millon gracias por su tiempo.

DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.
CARTA PORTE V3.1
ECODEX TIENE ESTOS NUEVOS DATOS DE CONTACTO :
Comercializacion y Ventas - Evelia Vicke evicke@ecodex.com.mx 33-16-03-03-48
Soporte - Humberto Guerrero soporte@ecodex.com.mx 33-34-90-46-03
.
Leer XML de CFDI en vb.net
-
- Mensajes: 370
- Registrado: Lun Oct 10, 2011 11:50 am
Re: Leer XML de CFDI en vb.net
Simplemente googlea "vb.net leer xml" y te van a aparecer algunos cientos de ligas sobre el tema
Toma en cuenta que el CFDI se lee como un archivo xml cualquiera..
Toma en cuenta que el CFDI se lee como un archivo xml cualquiera..
-
- Mensajes: 3
- Registrado: Dom Abr 10, 2016 11:14 pm
Re: Leer XML de CFDI en vb.net
creeme que lo he intentado XD
-
- Mensajes: 502
- Registrado: Mar Dic 28, 2010 1:12 pm
Re: Leer XML de CFDI en vb.net
Quizá si publicaras parte del código que te da problemas aquí alguien que sepa de VB podría darte algún tip.
Como fuiste honesto diciendo que es un proyecto escolar, lo correcto seria iluminarte en las fallas.
Como fuiste honesto diciendo que es un proyecto escolar, lo correcto seria iluminarte en las fallas.
-
- Mensajes: 205
- Registrado: Sab Nov 03, 2012 11:48 am
Re: Leer XML de CFDI en vb.net
Parte del código para leer un CFDI
Imports System.Xml
Public Class Emisor
Public rfc = String.Empty
Public razonSocial = String.Empty
Public calle = String.Empty
Public numeroExterior = String.Empty
Public numeroInterior = String.Empty
Public colonia = String.Empty
Public localidad = String.Empty
Public municipio = String.Empty
Public estado = String.Empty
Public pais = String.Empty
Public cp = String.Empty
Public telefono = String.Empty
End Class
Public Class DocumentoPDF
Public serie = String.Empty
Public folio = String.Empty
Public folioFiscalUUID = String.Empty
Public noSerieCertificadoSAT = String.Empty
Public noSerieCertificadoEmisor = String.Empty
Public fechaCertificacion = String.Empty
Public fechaEmisionCFDI = String.Empty
Public tipoDeComprobante = String.Empty
Public TipoCambio = String.Empty
Public NumCtaPago = String.Empty
End Class
#Region "Leer datos del archivo .xml"
Private Sub LeerArtributosXML(rutaXML)
xDoc = New XmlDocument()
xDoc.Load(rutaXML)
ObtenerNodoCfdiComprobante()
ObtenerNodoEmisor()
ObtenerNodoReceptor()
ObtenerNodoConceptos()
ObtenerNodoComplementoDigital()
ObtenerNodoImpuestos()
End Sub
Private Sub ObtenerNodoCfdiComprobante()
Dim valFloat As Single
If xDoc.GetElementsByTagName("cfdi:Comprobante") Is Nothing Then
Exit Sub
End If
Dim comprobante As XmlNodeList = xDoc.GetElementsByTagName("cfdi:Comprobante")
If CType(comprobante(0), XmlElement).GetAttribute("serie") <> Nothing Then
_templatePDF.serie = CType(comprobante(0), XmlElement).GetAttribute("serie")
End If
If CType(comprobante(0), XmlElement).GetAttribute("folio") <> Nothing Then
_templatePDF.folio = CType(comprobante(0), XmlElement).GetAttribute("folio")
End If
If CType(comprobante(0), XmlElement).GetAttribute("fecha") <> Nothing Then
_templatePDF.fechaEmisionCFDI = CType(comprobante(0), XmlElement).GetAttribute("fecha")
End If
...............
End Sub
Private Sub ObtenerNodoEmisor()
'Trabajamos con Emisor
If xDoc.GetElementsByTagName("cfdi:Emisor") Is Nothing Then
Exit Sub
End If
Dim emisor As XmlNodeList = xDoc.GetElementsByTagName("cfdi:Emisor")
_templatePDF.emisor.rfc = CType(emisor(0), XmlElement).GetAttribute("rfc")
_templatePDF.emisor.razonSocial = CType(emisor(0), XmlElement).GetAttribute("nombre")
If CType(emisor(0), XmlElement).GetElementsByTagName("cfdi:DomicilioFiscal") Is Nothing Then
Exit Sub
End If
On Error Resume Next
Dim domicilioFiscal As XmlNodeList = CType(emisor(0), XmlElement).GetElementsByTagName("cfdi:DomicilioFiscal")
_templatePDF.emisor.calle = CType(domicilioFiscal(0), XmlElement).GetAttribute("calle")
If CType(domicilioFiscal(0), XmlElement).GetAttribute("noExterior") <> Nothing Then
_templatePDF.emisor.numeroExterior = CType(domicilioFiscal(0), XmlElement).GetAttribute("noExterior")
End If
If CType(domicilioFiscal(0), XmlElement).GetAttribute("noInterior") <> Nothing Then
_templatePDF.emisor.numeroInterior = CType(domicilioFiscal(0), XmlElement).GetAttribute("noInterior")
End If
If CType(domicilioFiscal(0), XmlElement).GetAttribute("colonia") <> Nothing Then
_templatePDF.emisor.colonia = CType(domicilioFiscal(0), XmlElement).GetAttribute("colonia")
End If
.................
End Sub
#Region
Lo demás corre por tu cuenta, lo puedes guardar en una base de datos, para generar un reporte o pdf, etc.
Saludos.
Imports System.Xml
Public Class Emisor
Public rfc = String.Empty
Public razonSocial = String.Empty
Public calle = String.Empty
Public numeroExterior = String.Empty
Public numeroInterior = String.Empty
Public colonia = String.Empty
Public localidad = String.Empty
Public municipio = String.Empty
Public estado = String.Empty
Public pais = String.Empty
Public cp = String.Empty
Public telefono = String.Empty
End Class
Public Class DocumentoPDF
Public serie = String.Empty
Public folio = String.Empty
Public folioFiscalUUID = String.Empty
Public noSerieCertificadoSAT = String.Empty
Public noSerieCertificadoEmisor = String.Empty
Public fechaCertificacion = String.Empty
Public fechaEmisionCFDI = String.Empty
Public tipoDeComprobante = String.Empty
Public TipoCambio = String.Empty
Public NumCtaPago = String.Empty
End Class
#Region "Leer datos del archivo .xml"
Private Sub LeerArtributosXML(rutaXML)
xDoc = New XmlDocument()
xDoc.Load(rutaXML)
ObtenerNodoCfdiComprobante()
ObtenerNodoEmisor()
ObtenerNodoReceptor()
ObtenerNodoConceptos()
ObtenerNodoComplementoDigital()
ObtenerNodoImpuestos()
End Sub
Private Sub ObtenerNodoCfdiComprobante()
Dim valFloat As Single
If xDoc.GetElementsByTagName("cfdi:Comprobante") Is Nothing Then
Exit Sub
End If
Dim comprobante As XmlNodeList = xDoc.GetElementsByTagName("cfdi:Comprobante")
If CType(comprobante(0), XmlElement).GetAttribute("serie") <> Nothing Then
_templatePDF.serie = CType(comprobante(0), XmlElement).GetAttribute("serie")
End If
If CType(comprobante(0), XmlElement).GetAttribute("folio") <> Nothing Then
_templatePDF.folio = CType(comprobante(0), XmlElement).GetAttribute("folio")
End If
If CType(comprobante(0), XmlElement).GetAttribute("fecha") <> Nothing Then
_templatePDF.fechaEmisionCFDI = CType(comprobante(0), XmlElement).GetAttribute("fecha")
End If
...............
End Sub
Private Sub ObtenerNodoEmisor()
'Trabajamos con Emisor
If xDoc.GetElementsByTagName("cfdi:Emisor") Is Nothing Then
Exit Sub
End If
Dim emisor As XmlNodeList = xDoc.GetElementsByTagName("cfdi:Emisor")
_templatePDF.emisor.rfc = CType(emisor(0), XmlElement).GetAttribute("rfc")
_templatePDF.emisor.razonSocial = CType(emisor(0), XmlElement).GetAttribute("nombre")
If CType(emisor(0), XmlElement).GetElementsByTagName("cfdi:DomicilioFiscal") Is Nothing Then
Exit Sub
End If
On Error Resume Next
Dim domicilioFiscal As XmlNodeList = CType(emisor(0), XmlElement).GetElementsByTagName("cfdi:DomicilioFiscal")
_templatePDF.emisor.calle = CType(domicilioFiscal(0), XmlElement).GetAttribute("calle")
If CType(domicilioFiscal(0), XmlElement).GetAttribute("noExterior") <> Nothing Then
_templatePDF.emisor.numeroExterior = CType(domicilioFiscal(0), XmlElement).GetAttribute("noExterior")
End If
If CType(domicilioFiscal(0), XmlElement).GetAttribute("noInterior") <> Nothing Then
_templatePDF.emisor.numeroInterior = CType(domicilioFiscal(0), XmlElement).GetAttribute("noInterior")
End If
If CType(domicilioFiscal(0), XmlElement).GetAttribute("colonia") <> Nothing Then
_templatePDF.emisor.colonia = CType(domicilioFiscal(0), XmlElement).GetAttribute("colonia")
End If
.................
End Sub
#Region
Lo demás corre por tu cuenta, lo puedes guardar en una base de datos, para generar un reporte o pdf, etc.
Saludos.
-
- Mensajes: 3
- Registrado: Dom Abr 10, 2016 11:14 pm
Re: Leer XML de CFDI en vb.net
muchisimas gracias por tu ayuda bro
y s3cr3to si tienes rason solo que como soy un asco programando mi codigo da pena XD
y s3cr3to si tienes rason solo que como soy un asco programando mi codigo da pena XD