Extraer datos específicos de un xml (campos repetidos)
Básicamente es una pregunta similar que ya habían comentado, pero en mi caso quiero extraer información del XML pero el campo de llama igual (importe) y solo me lee el primer campo que encuentra.
Esta es la macro que generaste en el otro ejemplo, nada más faltaría sacar otros campos que te comento están duplicados en nombre.
Te envío unos xml a tu cuenta de correo.
Los campos que necesito son los impuestos retenidos (importes)
ISR sp
ISR142 si es que hubiera este ultimo.
GRACIAS de antemano
Sub Extraccion() 'Por.Dante Amor Application.ScreenUpdating = False Application.DisplayAlerts = False Set l1 = ThisWorkbook Set h1 = l1.Sheets(1) h1.UsedRange.Offset(1, 0).ClearContents ' datos = Array("/cfdi:Receptor/@rfc", _ "/cfdi:Receptor/@nombre", _ "/@total", _ "/cfdi:Conceptos/cfdi:Concepto/@descripcion", _ "/@fecha", _ "/cfdi:Complemento/nomina:Nomina/@FechaInicialPago", _ "/cfdi:Complemento/nomina:Nomina/@FechaFinalPago", _ "/cfdi:Complemento/nomina:Nomina/@NumDiasPagados") ruta = l1.Path & "\" arch = Dir(ruta & "*.xml") j = 2 k = 2 Do While arch <> "" Set l2 = Workbooks.Open(Filename:=ruta & arch) Set h2 = l2.Sheets(1) h1.Cells(j, "A") = arch For i = LBound(datos) To UBound(datos) Set b = h2.Rows(2).Find(datos(i), lookat:=xlPart) If Not b Is Nothing Then h1.Cells(j, k) = h2.Cells(3, b.Column) k = k + 1 End If Next l2.Close j = j + 1 k = 2 arch = Dir() Loop h1.Cells.EntireColumn.AutoFit MsgBox "Fin" End Sub
Respuesta de Dante Amor
2