powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / XML-файл
5 сообщений из 5, страница 1 из 1
XML-файл
    #39980205
l-evgene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Во вложении кусочек XML-файла. Из него требуется извлечь дату(из строки <SEM21 TradeDate="2020-06-23">).
Пытаюсь сделать это вот таким кодом
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
 Sub fncПробаSess()
'On Error GoTo Ошибка
 Const strXmlFileName = "C:\_ZenitMICEX\maxDate_19.06.2020\MM00001_SEM21A_00T_230620_005003458.xml"  'новый файл
 Const strСтрокаАтрибутов = "TradeDate"
 Const strXMLЗапрос = "SEM21"

Dim docXmlФайл As DOMDocument                                                   'документ целиком (файл)
Dim xmlКорень As IXMLDOMElement                                                 'корневая ветка
Dim xmlСтрокаДанных As IXMLDOMElement, xmlСтрокаДанных_2 As IXMLDOMElement      'Element
Dim lstКаталог As IXMLDOMNodeList ', lstСписок As IXMLDOMNodeList               'каталог
Dim longКоличествоСтрок As Long, j As Long, i As Long
Set docXmlФайл = New DOMDocument
docXmlФайл.async = False
docXmlФайл.Load strXmlFileName                                                  'загружаем XML-файл
Set xmlКорень = docXmlФайл.documentElement
Set lstКаталог = xmlКорень.selectNodes(strXMLЗапрос)                            'возвращаем каталог

longКоличествоСтрок = lstКаталог.Length
Set xmlСтрокаДанных = lstКаталог(0)
       
      Debug.Print xmlСтрокаДанных.nodeValue
        
Exit Sub
Ошибка:                                                                         'Обработка ошибки
MsgBox Err.Description & "  " & Err.Number, , "fncПробаSess"
End Sub

Возвращает NULL. Подскажете, что не так.
...
Рейтинг: 0 / 0
XML-файл
    #39980222
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
l-evgene
Подскажете, что не так.
это
автор
Код: vbnet
1.
Const strXMLЗапрос = "SEM21"
...
Рейтинг: 0 / 0
XML-файл
    #39980242
l-evgene
Во вложении кусочек XML-файла. Из него требуется извлечь дату(из строки <SEM21 TradeDate="2020-06-23">)
Если это всё, что требуется, то достаточно любым способом считать файл как текстовый (целиком или построчно), найти "<SEM21 TradeDate=" и взять значение. Буквально несколько строк кода.
...
Рейтинг: 0 / 0
XML-файл
    #39980465
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
l-evgene,
вроде так должно быть если речь только про одно значение
Код: xml
1.
2.
Set xmlКорень = docXmlФайл.documentElement
debug.print xmlКорень.selectSingleNode("//SeM21/@TradeDate").Text


если же их несколько
Код: xml
1.
2.
3.
4.
5.
dim wnode as MSXML2.IXMLDOMNode
Set lstКаталог = xmlКорень.selectNodes("//SeM21")
for each wnode from lstКаталог
debug.print wnode.selectSingleNode("@TradeDate").Text
next
...
Рейтинг: 0 / 0
XML-файл
    #39980754
l-evgene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобрался.
Я пытался прочесть значение нода:
Код: vbnet
1.
Debug.Print xmlСтрокаДанных.nodeValue


Нод значения не имеет и возвращает NULL.
А надо было искать значение по имени атрибута:
Код: vbnet
1.
objAttr = xmlСтрокаДанных.getAttribute(strАртибут)


Он как раз и возвращает нужный текст
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / XML-файл
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]