VB6 работа с XML данными

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Belkin
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 63
Зарегистрирован: 02.11.2007 (Пт) 18:02
Откуда: Рязань

VB6 работа с XML данными

Сообщение Belkin » 14.10.2008 (Вт) 9:20

Подскажите!
Есть на входе XML мне нужно найти в нем 4 строки
<pa_from>246300875642</pa_from>
<dif_from>1.8324</dif_from>
<pa_to>246300875662</pa_to>
<dif_to>1.8324</dif_to>
После чего проанализировать эти данные и дальше производить действия.
Я никогда не работал плотно с XML. единственное что знаю это разметка по аналогии с HTML (его знаю).
Точнее я получаю XML из очереди MSMQ потом это сообщение нужно проанализировать
Так вот как мне работать с XML? Записать в файл и потом работать с помощью каких-то специальных функций или просто как с текстом (тогда без проблем).
Какой вариант более правелен и быстрый?
Андрей.

ACiD
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 261
Зарегистрирован: 10.12.2005 (Сб) 2:29
Откуда: г. Санкт - Петербург

Re: VB6 работа с XML данными

Сообщение ACiD » 14.10.2008 (Вт) 10:23

Нужно обязательно VB6?. B Visual Studio намного проще.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: VB6 работа с XML данными

Сообщение tyomitch » 14.10.2008 (Вт) 10:27

При помощи MSXML, и в VB6 всё очень просто.
Изображение

Belkin
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 63
Зарегистрирован: 02.11.2007 (Пт) 18:02
Откуда: Рязань

Re: VB6 работа с XML данными

Сообщение Belkin » 14.10.2008 (Вт) 10:28

ACiD писал(а):Нужно обязательно VB6?. B Visual Studio намного проще.

Да именно и VB6 делаю.
Андрей.

Belkin
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 63
Зарегистрирован: 02.11.2007 (Пт) 18:02
Откуда: Рязань

Re: VB6 работа с XML данными

Сообщение Belkin » 14.10.2008 (Вт) 10:29

tyomitch писал(а):При помощи MSXML, и в VB6 всё очень просто.

Уже немного нашел инфы, сижу разбираюсь.
Если будут примеры и информация, не откажусь.

Заранее благодарен.
Андрей.

Belkin
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 63
Зарегистрирован: 02.11.2007 (Пт) 18:02
Откуда: Рязань

Re: VB6 работа с XML данными

Сообщение Belkin » 14.10.2008 (Вт) 11:06

Если я правильно разобрался, то получить значение любого уровня вложения можно так .childNodes.Item(3).childNodes.Item(1).Text
Фактически мне нужно знать этот уровень.
А если этот уровень 9, то длинное выражение получится.
Не проще поиск осуществить с помощью поиска по тексту и указать теги, а потом выделить значение.
Как вы считаете?
Разъясните пожалуйста, первый раз столкнулся с XML.
Андрей.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: VB6 работа с XML данными

Сообщение alibek » 14.10.2008 (Вт) 11:33

Почитай про XPath.
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: VB6 работа с XML данными

Сообщение tyomitch » 14.10.2008 (Вт) 11:34

.selectSingleNode("//pa_from").text

// означает "на любом уровне вложенности"
Изображение

Belkin
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 63
Зарегистрирован: 02.11.2007 (Пт) 18:02
Откуда: Рязань

Re: VB6 работа с XML данными

Сообщение Belkin » 14.10.2008 (Вт) 13:05

alibek писал(а):Почитай про XPath.

Читал про это. Вот только не получалось.
Спасибо tyomitch помогло!!!

Остается один вопрос:
Дело в том что я беру xml из оччере MSMQ/ Тоесть xml это тело сообщения.
Как мне произвести xmlDoc.Load (????)
Что писать вместо ????
Можно конечно сохранить значение строковой константы во времкнный файл, но это мне кажется не рационально.
Можете что подсказать?
Андрей.

Belkin
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 63
Зарегистрирован: 02.11.2007 (Пт) 18:02
Откуда: Рязань

Re: VB6 работа с XML данными

Сообщение Belkin » 14.10.2008 (Вт) 13:13

Спасибо за помощь!
Добился:

Код: Выделить всё
...
Dim qMessage As MSMQ.MSMQMessage
...
Set qMessage = qQueue.PeekCurrent(ReceiveTimeout:=300
xmlDoc.Load (qMessage)

Теперь можно перреходить от экспериментов к делу :)
Еще раз спасибо за подсказки!
Будут вопросы напишу.
Андрей.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Re: VB6 работа с XML данными

Сообщение RayShade » 24.10.2008 (Пт) 14:27

Выражение .selectSingleNode("//pa_from").text лишено смысла - выбирать 1 произвольный нод по имени из всего документа, странное занятие :)
Если нет четкого адреса ноды, проще сделать .selectNodes("//pa_from") и потом уже перебрать полученный список.
I don't understand. Sorry.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 101

    TopList