Вопрос

Обработка XML данных

Уважаемая колеги!
Обращаюсь к вам со следующей задачей: 
1.Надо произвести запрос к внешнему API-сервису с конкретными входными параметрами. 
2. В ответ получаем данные в формате XML․ 
3.В качестве результата вывести данные из полученного файла на странице пользователя. 
4. Следующим шагом сохранить эти данные в БД. 
 Есть у вас шаблон для реализации описанной задачи или какие-либо рекомендации по ее выполнению?  
 

Нравится

2 комментария

Nerses, в дизайнере бизнес-процессов есть элемент вызова веб-сервиса, но в нынешней реализации он поддерживает только JSON, а не XML.

То есть Вам нужно будет обращаться к сервису и получать XML-ответ кодом. Пример есть тут.

 

Затем нужно будет разобрать полученный результат. Если формат всегда одинаковый и совсем простой, то можно использовать обычные строковые функции, но лучше будет воспользоваться какой-нибудь библиотекой по работе с XML.

 

По третьему и четвёртому пунктам, исходя из серверной архитектуры системы, будет уместнее поменять их местами: сначала сохранить запись или записи в базу в нужный объект, а уже потом стандартными средствами отабразить в браузере пользователю на преднстроенной, автогенерируемой странице или карточке этой записи в  соответствующем разделе.

 

Поскольку работа с XML будет выполнятся на C# из блока-скрипта, сохранение в базу можно сделать там же, используя класс Insert или Entity.Save. Второй вариант позволит при сохранении запустить какую-то дополнительную логику на объекте или в БП на событии создания, первый сохраняет в обход срабатывания событий.

 

То есть будет БП из двух элементов: скрипта, выполняющего всю работу и блока отображения пользователю страницы.

 

А вот если бы это был вызов веб-сервиса, возвращающего JSON, можно было бы без написания кода произвести сохранение в базу полученной коллекции элементом создания записи. Но пока для XML такого нет.

В системе для пунктов 1-3 нет специальных классов, вы реализуете эту функциональность используя либо стандартные классы .net, либо подключая любые библиотеки которыми вы хотите пользоваться.

Показать все комментарии