I have the following SOAP response:
<?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>
My question is, can I parse this with jQuery such as below...
var xmlText = $(xml).find("soap:Envelope").
find("soap:Body").
find("getPurseBalanceResponse").
find("getPurseBalanceResult").
find("balance").text();
console.log(xmlText);
Currently this returns a blank string - what would be the correct jQuery
call to get "balance"?
You need to escape special characters (the colon) using double backslashes \\
var xmlText = $(xml).find("soap\\:Envelope")
.find("soap\\:Body")
.find("getPurseBalanceResponse")
.find("getPurseBalanceResult")
.find("balance").text();
console.log(xmlText);
Here is a working fiddle.
Short answer: yes. SOAP is XML. Any XML parser can read it. SOAP provides a whole layer of stuff using XML as the underlying data exchange format, but if you're not interested in using a SOAP library, an XML library will do it for you. Just makes more work for you.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With