Разбор / парсинг XML - VB
Формулировка задачи:
Имеется XML файл:
Нужно его распарсить и в файл записать.
Написал гомнокод:
На втором цикле
for
получаем, что элементов "*/СПИСОК_НА_ЗАЧИСЛЕНИЕ/СведенияОполучателе/ВсеВыплаты/Выплата"3
и при первом же проходе первогоfor
у нас считываются все Выплаты, в независимости от Получателя. Как же считать только выплаты по текущему Получателю?
Чую, что нужно использовать
For Each ... Next
не канает... Это уже голова пухнет...
Решение задачи: «Разбор / парсинг XML»
textual
Листинг программы
Private Sub Pars()
Dim Sp, t, s As String, tmp As String
Const tree As String = "ФайлПФР/СПИСОК_НА_ЗАЧИСЛЕНИЕ/СведенияОполучателе"
Dim i As Integer, j As Integer, k As Integer
Dim XmlBody
Set XmlBody = CreateObject("Microsoft.XMLDOM")
XmlBody.Async = "False"
XmlBody.Load (App.Path & "\1.xml") 'Путь по которому находится файл XML
Set Sp = XmlBody.SelectNodes(tree) 'Sp - Сведения о Получателе
For i = 0 To Sp.length - 1
t = Split(Sp.Item(i).Text)
tmp = ""
For j = 1 To CInt(t(4))
tmp = tmp & j & ". " & t(4 + j) & vbCrLf
Next j
s = s & t(0) & " " & t(1) & " " & t(2) & vbCrLf & "Номер счёта " & t(3) & vbCrLf & _
"Количество выплат " & t(4) & vbCrLf & tmp & vbCrLf
Next
MsgBox s
End Sub