是否有可能用jQuery xml处理程序解析SOAP响应?

Is it possible to parse a SOAP response with a jQuery xml handler?

本文关键字:SOAP 响应 程序 处理 有可能 jQuery xml 是否      更新时间:2023-09-26

我有以下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调用获得"平衡"?

您需要使用双反斜杠转义特殊字符(冒号)''

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

简短的回答:是的。SOAP是XML。任何XML解析器都可以读取它。SOAP提供了使用XML作为底层数据交换格式的整个层,但是如果您对使用SOAP库不感兴趣,XML库可以帮您完成。