|
Чтение данных XML из сервиса ↓Ø (Волшебник 15.02.2024 12:58) |
☑ | ||
---|---|---|---|---|
0
K1RSAN
14.02.24
✎
15:52
|
В общем, в первый раз работаю по сути с сервисами, вот слегка запутался.
Я запросом HTTP получаю ответ в виде XML, но не понимаю, как его корректно прочитать HTTPЗапрос = Новый HTTPЗапрос(Ресурс); HTTPЗапрос.Заголовки.Вставить("Content-type", "application/xml"); Результат = HTTPСоединение.Получить(HTTPЗапрос); СтрокаОтветаСервера = Результат.ПолучитьТелоКакСтроку(); Получаю строку. Но теперь не понимаю, как её построчно прочитать. Или как лучше прочитать? Записать в какой-то временный файл и считывать через ЧтениеXML ? |
|||
1
Волшебник
14.02.24
✎
15:52
|
Чем читаете? Если 1С, то там есть пакеты XDTO и ФабрикаXDTO, которая за одну команду прочитает весь файл и разберёт его на дерево.
|
|||
2
K1RSAN
14.02.24
✎
15:54
|
(1) Ну вот у меня строка получается через HTTPСоединение, не знаю чем считывать.
В первый раз пришлось работать с сервисами. Посмотрю про XDTO, спасибо |
|||
3
K1RSAN
14.02.24
✎
15:56
|
Чтение.ОткрытьФайл(ВыбранноеИмяФайла); - вот у меня нет выбранного имени файла, так как я не записываю данные в файл. У меня получается в виде строки.
Или надо тогда записать сначала в файл, а потом передать его имя? |
|||
4
Волшебник
14.02.24
✎
16:08
|
Данные = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML); |
|||
5
Волшебник
14.02.24
✎
16:09
|
Вот учебник из трёх статей:
1) https://infostart.ru/1c/articles/167459/ 2) https://infostart.ru/1c/articles/168148/ 3) https://infostart.ru/1c/articles/171019/ |
|||
6
K1RSAN
15.02.24
✎
05:56
|
(5) Спасибо
|
|||
7
Ёпрст
15.02.24
✎
09:06
|
(0) если че, у ЧтениеXML есть метод УстановитьСтроку.
можешь и без фабрики читать, хоть с ней и проще. |
|||
8
K1RSAN
15.02.24
✎
10:53
|
(7) Я одно понять не могу.
Вот даже в инструкции есть какое-то ИмяФайла А если я запросом получаю данные XML ? Ну нету у меня имени файла. Тогда надо записать будет или как? |
|||
9
Волшебник
15.02.24
✎
11:02
|
(8) Ну что мешает сохранить во временный файл?
|
|||
10
arsik
15.02.24
✎
11:08
|
(8) Инструкции устарели. Смотри метод из (7)
|
|||
11
K1RSAN
15.02.24
✎
11:15
|
(10) Для открытия ЧтениеXML мне надо сначала открыть файл. Которого у меня нет, потому что я получаю строку через HTTP запрос.
Я вот и хочу узнать, как мне действовать? Записывать куда-то файл, чтобы потом его считаывать? |
|||
12
K1RSAN
15.02.24
✎
11:16
|
(9) То есть я получаю ответ HTTP, считываю его как строку, а потом записываю во временный файл, чтобы считать, верно?
|
|||
13
Builder
15.02.24
✎
11:16
|
(12)
ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.УстановитьСтроку(ТвояСтрока); |
|||
14
K1RSAN
15.02.24
✎
11:18
|
(13) Спасибо, это я и не мог понять
|
|||
15
Builder
15.02.24
✎
11:19
|
(12) еще вариант, у меня вариант из (13) вылетал с ошибкой на мобильной платформе например.
ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.ОткрытьПоток(ТвояСтрока); |
|||
16
K1RSAN
15.02.24
✎
12:00
|
В итоге тоже не помогло...
У меня строка ответа выглядит так {"#",4238019d-7e49-4fc9-91db-b6b951d5cf8e, {3, { {"S","Результат"}, {"B",1} }, { {"S","Данные"}, {"S","<?xml version=""1.0"" encoding=""UTF-8""?> ... там дальше структура XML с данными Я понимаю, что вопрос странный, но я не могу найти нормальный ответ нигде, как всё-таки обработать этот несчастный запрос и прочитать из него XML |
|||
17
ptiz
15.02.24
✎
12:04
|
(16) Это не XML. Это ЗначениеВСтрокуВнутр() со строкой XML.
|
|||
18
K1RSAN
15.02.24
✎
12:06
|
(17) Можно подробнее, что с этим делать?
|
|||
19
Builder
15.02.24
✎
12:08
|
(16) Разберись с тем, кто отдает XML, что бы отдавал действительно XML.
Или вытаскивай XML из того что отдают. |
|||
20
Builder
15.02.24
✎
12:09
|
(18) Логично что ЗначениеИзСтрокиВнутр();
|
|||
21
K1RSAN
15.02.24
✎
12:14
|
(20) И?
|
|||
22
Builder
15.02.24
✎
12:19
|
(21) Что И? Открываем синтаксис-помощник, документацию, интернет и внимательно читаем и изучаем.
Вы там кем работаете? |
|||
23
K1RSAN
15.02.24
✎
12:24
|
(22) Я ни разу не работал с XML ранее. Можно хоть какую-то информацию?
|
|||
24
K1RSAN
15.02.24
✎
12:27
|
(20)
ЗначениеВСтрокуВнутр (ValueToStringInternal) Используется для сохранения функциональной совместимости с 1С:Предприятием 7.7. Использовать для других целей не рекомендуется. Согласно синтакс-помощнику это использовать нельзя. |
|||
25
arsik
15.02.24
✎
12:33
|
(24) Так не используй. Вроде все просто
|
|||
26
Builder
15.02.24
✎
12:34
|
(24) Что не понятно - тебе отдают результат работы этой функции. Узнай зачем так сделано. Если не можешь или не хочешь - преобразуй обратно через ЗначениеИзСтрокиВнутр()
|
|||
27
K1RSAN
15.02.24
✎
12:35
|
(25) А можете подсказать КАК мне обработать этот ответ? Чтобы выцепить XML оттуда?
|
|||
28
K1RSAN
15.02.24
✎
12:35
|
(26) Мне пофиг зачем так сделано. Мне надо вытащить оттуда данные XML
|
|||
29
Builder
15.02.24
✎
12:40
|
(28) Вытаскивай, тебе все расписали как это сделать.
|
|||
30
Garykom
15.02.24
✎
12:41
|
(27) Подсказываю:
Обратиться к начальнику и сказать что "сервис какую то хрень возвращает вместо XML" |
|||
31
K1RSAN
15.02.24
✎
12:45
|
(29)
ЗначениеИзСтрокиВнутр() - сделал При попытке чтения XML - фатальная ошибка Document is empty |
|||
32
Волшебник
15.02.24
✎
12:46
|
(16) Это не XML.
|
|||
33
Builder
15.02.24
✎
12:47
|
(31) Жесть....
Ты думаешь что ЗначениеИзСтрокиВнутр() вернет XML? Я ХЗ что он там вернет - структуру или соответствие, а может еще что-то. И вот оттуда уже вытаскивай XML. |
|||
34
Волшебник
15.02.24
✎
12:47
|
Я ветку топлю. Не морочьте людям голову
|
|||
35
K1RSAN
15.02.24
✎
12:48
|
(32) И из такой структуры никак не получить XML?
Просто это сторонний сервис, а не наш. Коммуникация с разработчиком сервиса может быть затруднена. |
|||
36
K1RSAN
15.02.24
✎
12:48
|
(33) Ну то есть ты не знаешь, как делать, но при этом - "тебе все расписали как это сделать" )
|
|||
37
Builder
15.02.24
✎
12:50
|
(36) Что там тебе вернули - посмотреть можно только у тебя, мы тут конечно все телепаты, но не до такой степени....
|
|||
38
K1RSAN
15.02.24
✎
12:50
|
Да уж, видимо в ютубе уже проще найти нужную информацию и помощь, чем на профильном форуме. Ну что поделать
|
|||
39
Garykom
15.02.24
✎
12:51
|
(35) Ты понимаешь что это уже не твой уровень проблемы?
Требуй мануал с описанием что в ответе сервиса |
|||
40
K1RSAN
15.02.24
✎
12:51
|
(37) Наверное, поэтому я и спрашиваю, что и как можно посмотреть. Скинул начало строки ответа.
|
|||
41
Garykom
15.02.24
✎
12:52
|
(38) Проблема не в профильном форуме
А в неправильных вопросах |
|||
42
Волшебник
15.02.24
✎
12:58
|
(38) Воу-воу! Полехче...
|
|||
43
Волшебник
15.02.24
✎
12:58
|
Да, поищите в ютубе, как разобрать эту хрень. Удачи
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |