#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 или какие-то другие инструменты, которые они сейчас позволяют, и все.