|
Не могу понять где у меня ошибка:не работает цикл по элементам узла...xml код внизу...VBA
|
|||
---|---|---|---|
#18+
-<attachments> -<attachment> <publishedContentId>94858457839859485739485</publishedContentId> <fileName>Приложение к извещению.doc</fileName> <fileSize>7.21 Мб</fileSize> <docDescription>Приложение №</docDescription> <url> http://iz/file.html?uid=6FB2FB4BCEEB009AE0530A86121F1E6F</url> -<cryptoSigns> <signature type="CAdES-BES">3ZfLQHnuEL9kyG1zL31VYDbuNz0ReMMrjWIu6dKgNkKdgRhapkMddr</signature> </cryptoSigns> </attachment> -<attachment> <publishedContentId>AE0530A86121F3105</publishedContentId> <fileName>Документация.doc</fileName> <fileSize>7.81 Мб</fileSize> <docDescription>Аукционная документация</docDescription> <url> http://z/file.html?uid=6FC294AB51E3006AE0530A86121F3105</url> -<cryptoSigns> <signature type="CAdES-BES">BAMbz6a/f0Kz3IZoIi/D0bGRVbDTREw4hIEm800eEm9dqSdYuUTfcc</signature> </cryptoSigns> </attachment> </attachments> -------------------------------------------------------------------- Я только учус ))) А вот сам цикл на VBA: Private Sub Кнопка0_Click() Dim xmlOb As MSXML2.DOMDocument60 Dim xNode As MSXML2.IXMLDOMNode Dim xElem As MSXML2.IXMLDOMElement Dim db As DAO.Database Dim rst As DAO.Recordset Set db = CurrentDb Set rst = db.OpenRecordset("tabMXL") Set xmlOb = New DOMDocument60: xmlOb.async = False: xmlOb.validateOnParse = True 'Назначаем схемы xmlOb.SetProperty "SelectionNamespaces", "xmlns:q='http://zakupki.gov.ru/oos/export/1' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:oos='http://zakupki.gov.ru/oos/types/1'" xmlOb.SetProperty "SelectionNamespaces", "xmlns:q='http://zakupki.gov.ru/oos/types/1' xmlns:ns2='http://zakupki.gov.ru/oos/export/1' xmlns:ns3='http://zakupki.gov.ru/oos/pprf615types/1' xmlns:ns4='http://zakupki.gov.ru/oos/base/1'" If xmlOb.Load("c:\1Zakupki_test\1.xml") Then For Each xElem In xmlOb.selectNodes(".//q:attachments") rst.AddNew rst!fName = xElem.selectSingleNode(".//q:fileName").Text rst!fSize = xElem.selectSingleNode(".//q:fileSize").Text Next xElem rst.Update End If rst.Close End Sub Здесь я хотел найти узел Attachments и пройтись по всем подузлам (правильно сказал?) "attachment" и записать данные элементов "fileName", "fileSize" в таблицу tabXML. Записывает в таблицу элементы только первого аттачмента, второго не видит, не идет... Что я как новичок сделал не так ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2018, 04:04 |
|
Не могу понять где у меня ошибка:не работает цикл по элементам узла...xml код внизу...VBA
|
|||
---|---|---|---|
#18+
Нашел проблему....надо было дописать в наименовании узла "attachments" добавить подузел "attachment" Тема закрыта... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2018, 04:54 |
|
Не могу понять где у меня ошибка:не работает цикл по элементам узла...xml код внизу...VBA
|
|||
---|---|---|---|
#18+
Владислав1970, Поторопился написать....пока не работает ((( ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2018, 04:58 |
|
Не могу понять где у меня ошибка:не работает цикл по элементам узла...xml код внизу...VBA
|
|||
---|---|---|---|
#18+
Владислав1970, Решил...цикл поменял на этот: Set xElem = xmlOb.selectSingleNode(".//q:attachments") For Each xSub In xElem.childNodes rst.AddNew rst!fName = xSub.selectSingleNode(".//q:fileName").Text rst!fSize = xSub.selectSingleNode(".//q:fileSize").Text rst.Update Next Выделил узел и циклом по childnodes ))))) Тема можно сказать закрыта ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2018, 06:02 |
|
|
start [/forum/topic.php?fid=45&msg=39668125&tid=1611331]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 289ms |
total: | 431ms |
0 / 0 |