Чтение XML-файла GetReservationRQ

#sabre

Вопрос:

Работаю над веб-приложением SABRE для нашей компании. Я полный новичок, и я сделал вызов SOAP, чтобы вернуть GetReservationRQ. Без проблем. Физически я могу видеть и читать xml. Каков наилучший практический подход к чтению xml и его практическому использованию в государстве? Я бы предпочел преобразовать его в json и работать с ним там, но, похоже, я очень мало понимаю в его преобразовании. Какие методы вы используете? Пример: Я хочу захватить элемент для захвата stl19:AccountingLines и дочерние узлы и преобразовать их в json… Извините, это основной вопрос… но ничто не бывает легким, когда ты начинаешь…

Ответ №1:

Вы можете получить XML-схему в студии разработчика и использовать какой-либо инструмент для преобразования схемы в файлы классов (это зависит от вашего языка программирования). Как только у вас появятся классы, вы сможете сериализовать/десериализовать XML в объект и наоборот. Если ваш язык не поддерживает этот тип, вы можете использовать XPATH для чтения XML и анализа сообщения.

Пример:

 node = xmlRQ.SelectSingleNode("//soap:Body/a:DebitPointsRQ/a:LoyaltyMembershipID", nsmgr);
            if (node != null amp;amp; node.InnerText != string.Empty)
                _debitRequest.LoyaltyMembershipID =node.InnerText;
 

Комментарии:

1. Какой язык программирования вы используете?

2. Машинописный текст … Мне удалось найти способ … но я не думаю, что это так элегантно. Я обратился к поставщику инструмента, чтобы запросить версию с рекомендациями, поскольку все, кто разрабатывает плагин для этого приложения, скорее всего, столкнутся с тем же, что и я…

Ответ №2:

Я бы рекомендовал вам взглянуть на https://github.com/highsource/jsonix. Это позволит вам скомпилировать xsd-файлы, определяющие сообщения запроса и ответа для веб-службы GetReservationRQ, в файлы javascript, которые вы можете использовать в своем проекте typescript. Это было бы одним из самых элегантных решений для работы с преобразованием xml <-> json.

Комментарии:

1. Спасибо @httPants. К сожалению, наш проект/поставщик не допускает сторонних инструментов. Это родной js или какие-то другие инструменты, которые они сейчас позволяют, и все.