|
Обработка xml
|
|||
---|---|---|---|
#18+
Комрады, добрый (уже наверное) вечер! Проблема... В результате отправки на некий веб-сервис GET запроса получаю ответ в формате xml. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Поскольку такой вот я лузер, не умею иначе, как поместить этот блок текста в ячейку, а затем парсю содержимое этой ячейки, разнося данные по таблице Код: plaintext 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. 27. 28.
Беда пришла внезапно... При определенных запросах xmlParser.LoadXML(strXML) не распознавался, как xml. Догадка следствия в том, что количество символов в возвращаемом запросе больше количества, разрешенного excel для записи в ячейку, из-за чего "ломается" структура xml-файла. Подскажите, как быть? Пробовал тупо сохранять ответ в переменную и парсить ее, но, видимо, формат xml в ней тоже некорректно сохраняется. Или я не так это делаю. _____________________ А что на самом деле хотел сказать "Frost_Imp" никто не знает, так как администрация форума попросила его быть вежливым. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 16:03 |
|
Обработка xml
|
|||
---|---|---|---|
#18+
В http.responseXML должен быть уже готовый к использованию DOMDocument. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 16:06 |
|
Обработка xml
|
|||
---|---|---|---|
#18+
сохраняйте в переменную при загрузке из веб и сразу анализируйте ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 16:11 |
|
Обработка xml
|
|||
---|---|---|---|
#18+
Konst_Oneсохраняйте в переменную при загрузке из веб и сразу анализируйте Вот в том то и дело, что не получается Если я предыдущем коде вместо Код: vbnet 1. 2. 3.
сделаю Код: vbnet 1. 2.
а потом в другой процедуре Код: vbnet 1. 2. 3. 4.
я получаю MsgBox strXML объявлен глобально как Boolean (при String тоже не получалось) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 16:55 |
|
Обработка xml
|
|||
---|---|---|---|
#18+
ActiveCell.FormulaR1C1 = http.responseText зачем так??? берите сразу responseXML и обрабатывайте ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 17:02 |
|
Обработка xml
|
|||
---|---|---|---|
#18+
Konst_One, нет-нет, первый кусок кода из трех в предыдущем посте - это как БЫЛО. Второй - как СТАЛО. То есть Код: vbnet 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 17:08 |
|
Обработка xml
|
|||
---|---|---|---|
#18+
Описываю действия по порядку. 1. Выполняю GET запрос Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
2. Пробую парсить Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
И гарантированно вижу Ахтунг Debug.Print strXML такой Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 17:16 |
|
Обработка xml
|
|||
---|---|---|---|
#18+
зачем строку то? я ж говорю про xml Код: vbnet 1. 2. 3.
а проверку делай через status и ошибку смотри ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 17:20 |
|
Обработка xml
|
|||
---|---|---|---|
#18+
Жутко не хочется казаться нерадивым студентом, но... Что есть status? Чуть подробнее, я сам докурю ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 17:25 |
|
Обработка xml
|
|||
---|---|---|---|
#18+
свойство у твоего объекта http Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 17:28 |
|
Обработка xml
|
|||
---|---|---|---|
#18+
Бррр, а какое свойство можно проверить у блока текста в xml ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 17:31 |
|
Обработка xml
|
|||
---|---|---|---|
#18+
parseError очепятка выше ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 17:34 |
|
Обработка xml
|
|||
---|---|---|---|
#18+
Все равно не понимаю ваши односложные ответы :) Отстаю. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 17:34 |
|
Обработка xml
|
|||
---|---|---|---|
#18+
0,5к деревянных банковским переводом за готовый кусок кода :( ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 17:41 |
|
Обработка xml
|
|||
---|---|---|---|
#18+
... http.send If http.Status = 200 Then 'тут есть ответ 'можно обрабатывать Dim doc as Object 'domdocument Set doc = http.responseXML 'объект xml if doc.parseError.errorCode <> 0 then 'ошибка в xml Debug.Print doc.parseError.reason else 'бежим по нодам Dim n as Object for each n in doc.selectNodes("path") ... next end if Else 'тут проблемы какие-то с ответом End if ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 17:42 |
|
Обработка xml
|
|||
---|---|---|---|
#18+
Вот-вот, как раз хотел написать, что Код: vbnet 1. 2.
выдает 0 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 17:48 |
|
Обработка xml
|
|||
---|---|---|---|
#18+
вот и хорошо дальше смотрите что там у вас в нодах. я бы посоветовал в референсы добавить MSXML и явно объявить все объекты. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 17:49 |
|
Обработка xml
|
|||
---|---|---|---|
#18+
A Beginner's Guide to the XML DOM: http://msdn.microsoft.com/en-us/library/aa468547.aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 17:59 |
|
Обработка xml
|
|||
---|---|---|---|
#18+
Konst_One http://www.sql.ru/articles/mssql/03102702xmlin20minutes.shtml Зачитался. Но на самом интересном месте все закончилось ( Нда, не "xml для чайников" конечно ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 18:29 |
|
Обработка xml
|
|||
---|---|---|---|
#18+
ну так что у вас там с коллекцией вашей? Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 18:36 |
|
Обработка xml
|
|||
---|---|---|---|
#18+
тут разжёвано на примере получения курсов с сайта ЦБ применительно к акцесу http://www.cyberforum.ru/ms-access/thread444017.html ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 18:38 |
|
Обработка xml
|
|||
---|---|---|---|
#18+
Konst_One, дружище, огромное спасибо за инициативу! Честно, благодарен. Но, черт побери, уже сломал все, что работало. Сейчас мысли в кучу соберу... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 18:58 |
|
Обработка xml
|
|||
---|---|---|---|
#18+
Я вообще не знаю что делать. Итак, переменная замечательно передается из функции в функцию. Ошибка Object variable or With block variable not set появляется на строке Set xmlNodeList = xmlParser.DocumentElement.SelectNodes(xml_path) Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
.... Что описывает xml_path? После каких тэгов искать ноды?... Я на что еще обратил внимание... Когда я делаю Debug.Print http.responseText - я не вижу начала блока данных. То есть вместо привычного Код: xml 1. 2. 3. 4.
массив данных начинается с Код: xml 1. 2. 3. 4.
Я грешу, что слишком много символов и в окно immediate все данные попросту не влазят. Или в этом и есть ошибка? В том, что, по каким-то причинам, возвращается часть данных и, соответственно, получается уже не xml формат (без начальных то тэгов) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 19:36 |
|
|
start [/forum/topic.php?fid=60&msg=38148291&tid=2157150]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
148ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 274ms |
total: | 515ms |
0 / 0 |