Можно ли проанализировать ответ SOAP с помощью обработчика jQuery xml? - PullRequest
4 голосов
/ 30 ноября 2011

У меня следующий SOAP-ответ:

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <getPurseBalanceResponse xmlns="https://secure.card.com/">
            <getPurseBalanceResult>
                <callStatus>
                    <Success>true</Success>
                    <ErrorCode/>
                </callStatus>
                <balance>63.35</balance>
                <pending>30</pending>
                <logoUrl>https://prepa.sqasddsad.com/ytm/images/logos/sq_cashlesscaterpurse3.gif</logoUrl>
                <purseId>23456</purseId>
                <CurrencyCode>GBP</CurrencyCode>
            </getPurseBalanceResult>
        </getPurseBalanceResponse>
    </soap:Body>
</soap:Envelope>

У меня вопрос, могу ли я разобрать это с помощью jQuery, как показано ниже ...

var xmlText = $(xml).find("soap:Envelope").
                     find("soap:Body").
                     find("getPurseBalanceResponse").
                     find("getPurseBalanceResult").
                     find("balance").text();
console.log(xmlText);

В настоящее время это возвращает пустую строку - какой будет правильный jQuery вызов для получения «баланса»?

Ответы [ 2 ]

14 голосов
/ 01 декабря 2011

Вы должны экранировать специальные символы (двоеточие), используя двойную обратную косую черту \\

var xmlText = $(xml).find("soap\\:Envelope")
                    .find("soap\\:Body")
                    .find("getPurseBalanceResponse")
                    .find("getPurseBalanceResult")
                    .find("balance").text();
console.log(xmlText);

Вот рабочая скрипка .

1 голос
/ 30 ноября 2011

Краткий ответ: да. SOAP - это XML. Любой XML-парсер может прочитать его. SOAP предоставляет целый слой материала, используя XML в качестве основного формата обмена данными, но если вы не заинтересованы в использовании библиотеки SOAP, библиотека XML сделает это за вас. Просто делает больше работы для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...