我在读取XML时遇到问题。我的程序在一开始就做得很好,然后失败了。我必须读取一个文件夹中的所有xml并将其显示在excel工作表上,但是我的程序读取了所有文件,但只将最后一个文件写入了该文件夹中。我认为For each
上存在问题,但我迷路了。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Version_xml As String
Dim implocaltraladados As Decimal
Dim implocalretenidos As Decimal
Dim retenidos As Decimal
Dim trasladados As Decimal
Dim Subtotal As Decimal
Dim valor_noIdentificacion As String
Dim preciounitarioxml As Decimal
Dim importeconcepto As Decimal
Dim cantidadvendida As Decimal
Dim subtotalclave As Decimal = 0
Dim descripcionxml As String
Dim Emisor_Nombre As String
Dim total As Decimal
Dim UUID As String
Dim VarConceptos As XmlNodeList
On Error Resume Next
Dim VarDocumentoXML As XmlDocument = New XmlDocument()
Dim VarManager As XmlNamespaceManager = New XmlNamespaceManager(VarDocumentoXML.NameTable)
Dim folderPath = "C:\Users\C-Juarezl\Desktop\Xml\"
For Each filePath In Directory.GetFiles(folderPath, "*.xml", SearchOption.AllDirectories)
VarDocumentoXML.Load(filePath) 'Aqui puedes definir la ruta del archivo mediante un OpenFileDialog o algun otro metodo para especificar
Next
VarManager.AddNamespace("cfdi", "http://www.sat.gob.mx/cfd/3")
VarManager.AddNamespace("tfd", "http://www.sat.gob.mx/TimbreFiscalDigital")
VarManager.AddNamespace("implocal", "http://www.sat.gob.mx/implocal")
Version_xml = VarDocumentoXML.SelectSingleNode("/cfdi:Comprobante/@Version", VarManager).InnerText
total = VarDocumentoXML.SelectSingleNode("/cfdi:Comprobante/@Total", VarManager).InnerText
Emisor_Nombre = VarDocumentoXML.SelectSingleNode("/cfdi:Comprobante/cfdi:Emisor/@Nombre", VarManager).InnerText
UUID = VarDocumentoXML.SelectSingleNode("/cfdi:Comprobante/cfdi:Complemento/tfd:TimbreFiscalDigital/@UUID", VarManager).InnerText
Label2.Text = Emisor_Nombre
Label4.Text = UUID
Label5.Text = total.ToString("c")
implocalretenidos = VarDocumentoXML.SelectSingleNode("/cfdi:Comprobante/cfdi:Complemento/implocal:ImpuestosLocales/@TotaldeRetenciones", VarManager).InnerText
implocaltraladados = VarDocumentoXML.SelectSingleNode("/cfdi:Comprobante/cfdi:Complemento/implocal:ImpuestosLocales/@TotaldeTraslados", VarManager).InnerText
retenidos = VarDocumentoXML.SelectSingleNode("/cfdi:Comprobante/cfdi:Impuestos/@TotalImpuestosRetenidos", VarManager).InnerText
trasladados = VarDocumentoXML.SelectSingleNode("/cfdi:Comprobante/cfdi:Impuestos/@TotalImpuestosTrasladados", VarManager).InnerText
Subtotal = VarDocumentoXML.SelectSingleNode("/cfdi:Comprobante/@SubTotal", VarManager).InnerText
VarConceptos = VarDocumentoXML.SelectNodes("/cfdi:Comprobante/cfdi:Conceptos/cfdi:Concepto", VarManager)
For Each node In VarConceptos
valor_noIdentificacion = node.attributes("NoIdentificacion").value
preciounitarioxml = node.attributes("ValorUnitario").value
importeconcepto = node.attributes("Importe").value
cantidadvendida = node.attributes("Cantidad").value
subtotalclave = node.attributes("Importe").value
descripcionxml = node.attributes("Descripcion").value
Next
End Sub