Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / XML-файл / 5 сообщений из 5, страница 1 из 1
16.07.2020, 00:24
    #39980205
l-evgene
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML-файл
Во вложении кусочек 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
16.07.2020, 06:42
    #39980222
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML-файл
l-evgene
Подскажете, что не так.
это
автор
Код: vbnet
1.
Const strXMLЗапрос = "SEM21"
...
Рейтинг: 0 / 0
16.07.2020, 09:01
    #39980242
XML-файл
l-evgene
Во вложении кусочек XML-файла. Из него требуется извлечь дату(из строки <SEM21 TradeDate="2020-06-23">)
Если это всё, что требуется, то достаточно любым способом считать файл как текстовый (целиком или построчно), найти "<SEM21 TradeDate=" и взять значение. Буквально несколько строк кода.
...
Рейтинг: 0 / 0
16.07.2020, 14:14
    #39980465
alecko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML-файл
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
17.07.2020, 09:00
    #39980754
l-evgene
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML-файл
Разобрался.
Я пытался прочесть значение нода:
Код: vbnet
1.
Debug.Print xmlСтрокаДанных.nodeValue


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


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


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