'--------------------------------------------------
'Empezamos a leer el XML
Dim xDoc As MSXML2.DOMDocument60
Dim Xs As String, i As Integer
Dim Rs As DAO.Recordset
'* los comentarios más amplios en la rutina anterior
'* inicializamos las variables
Erase Tabla
CuentaEle = 0
TextoInicial1 = "CstmrDrctDbtInitn": TextoInicial2 = "CdtrSchmeId"
'* leemos el archivo que queremos analizar
Set xDoc = New MSXML2.DOMDocument60
xDoc.Load (Me.txtXML)
LeerNodos xDoc.ChildNodes
Set xDoc = Nothing
'* comenzamos el tratamiento del texto recibido
'* lo primero buscamos desde/hasta de los datos generales
DesdeHasta "CstmrDrctDbtInitn", 1
If Desde = 0 Then
MsgBox "Error formato fichero", vbCritical, Me.Caption
Exit Sub
End If
' mostramos los datos que necesitemos
Me.Datos = "Acreedor: " & BuscaValor("Nm") & vbNewLine & _
"Nombre remesa: " & BuscaValor("MsgId") & vbNewLine & _
"Fecha de cargo: " & Format(BuscaValor("ReqdColltnDt"), "dd/mm/yyyy") & vbNewLine & _
"Nº Operaciones: " & BuscaValor("NbOfTxs") & vbNewLine & _
"Importe remesa: " & BuscaValor("CtrlSum") & "€"
'HASTA AQUI SACA LO QUE QUIERO; PERO EL BUCLE DE ABAJO NO LO CONSIGO
'* como pueden venir varios adeudos lo hacemos mediante un bucle
Do
'* lo primero buscamos desde/hasta de la cabecera del adeudo
Call DesdeHasta("DrctDbtTxInf", Hasta + 1)
If Desde = 0 Then Exit Do ' significa que ya no hay más pedidos
' mostramos los datos que necesitemos
MsgBox "Nº Recibo: " & BuscaValor("EndToEndId")
Me.Datos = Me.Datos & vbNewLine & vbNewLine & _
"Nº Recibo: " & BuscaValor("EndToEndId") & vbNewLine & _
"Importe: " & BuscaValor("InstdAmt") & "€" & vbNewLine & _
"Nombre cliente: " & BuscaValor("Nm") & vbNewLine & _
"Iban: " & BuscaValor("IBAN") & vbNewLine & _
"Concepto: " & BuscaValor("Ustrd")
Loop
MsgBox "Proceso terminado"
Y el XML Tiene esta estructura
<Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.001.02">
<CstmrDrctDbtInitn>
<GrpHdr>
<MsgId>Abo2023-05-30T8:17:24</MsgId>
<CreDtTm>2023-05-30T08:17:24</CreDtTm>
<NbOfTxs>2</NbOfTxs>
<CtrlSum>2.2</CtrlSum>
<InitgPty>
<Nm>Fondo(Pepe Palotes)</Nm>
</InitgPty>
</GrpHdr>
<PmtInf>
<PmtInfId>Abo2023-05-30T - RCUR - 2023-05-30</PmtInfId>
<PmtMtd>DD</PmtMtd>
<NbOfTxs>2</NbOfTxs>
<CtrlSum>2.2</CtrlSum>
<ReqdColltnDt>2023-06-05</ReqdColltnDt>
<Cdtr>
<Nm>Fondo(Pepe Palotes)</Nm>
</Cdtr>
<CdtrAcct>
<Id>
<IBAN>ES633035014567</IBAN>
</Id>
</CdtrAcct>
<CdtrAgt>
<FinInstnId>
</FinInstnId>
</CdtrAgt>
<CdtrSchmeId>
</CdtrSchmeId>
<DrctDbtTxInf> 'AQUI EMPEZARIAN LOS DEUDORTES, EN ESTE CASO HAY 2
<PmtId>
<EndToEndId>-5715</EndToEndId>
</PmtId>
<InstdAmt Ccy="EUR">1.1</InstdAmt>
<DrctDbtTx>
<MndtRltdInf>
<MndtId>216</MndtId>
<DtOfSgntr>2022-11-23</DtOfSgntr>
</MndtRltdInf>
</DrctDbtTx>
<DbtrAgt>
<FinInstnId>
</FinInstnId>
</DbtrAgt>
<DbtrAcct>
<Id>
<IBAN>ES63146501009</IBAN>
</Id>
</DbtrAcct>
<RmtInf>
<Ustrd>Fondo_2023</Ustrd>
</RmtInf>
</DrctDbtTxInf>
<DrctDbtTxInf>
<PmtId>
<EndToEndId>-5717</EndToEndId>
</PmtId>
<InstdAmt Ccy="EUR">1.1</InstdAmt>
<DrctDbtTx>
<MndtRltdInf>
<MndtId>117</MndtId>
<DtOfSgntr>2022-11-23</DtOfSgntr>
</MndtRltdInf>
</DrctDbtTx>
<DbtrAgt>
<FinInstnId>
</FinInstnId>
</DbtrAgt>
<DbtrAcct>
<Id>
<IBAN>ES183008000111</IBAN>
</Id>
</DbtrAcct>
<RmtInf>
<Ustrd>Fondo_2023</Ustrd>
</RmtInf>
</DrctDbtTxInf>
</PmtInf>
</CstmrDrctDbtInitn>
</Document>
Saludos