2016-01-14 6 views
0

У меня есть ответ SOAP от веб-службы, и я просто пытаюсь извлечь элемент «Сумма» из «Общая стоимость» в элементе body. Я знаком с тем, как это сделать в JSON, но я изо всех сил пытаюсь найти любой материал в Интернете о том, как это сделать с помощью SOAP, используя Javascript/jQuery.Извлечение данных из SOAP с помощью Javascript

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
     <ns1:TotalCostResponse xmlns="http://get_total_cost_request.business.ws.test.com" xmlns:ns1="http://business.ws.test.com" xmlns:ns2="http://get_total_cost_response.business.ws.test.com"> 
     <ns2:MSG> 
      <ns2:HEADER> 
       <ns2:SITENO>1</ns2:SITENO> 
       <ns2:SYSTEM_ID>S01</ns2:SYSTEM_ID> 
       <ns2:CLUSTER_NAME>BUSINESS</ns2:CLUSTER_NAME> 
       <ns2:SERVICE_METHOD>TOTAL_COST</ns2:SERVICE_METHOD> 
       <ns2:VERSION_NO>1.0</ns2:VERSION_NO> 
      </ns2:HEADER> 
      <ns2:BODY> 
       <ns2:TOTAL_COST> 
        <ns2:AMOUNT>2139.82</ns2:AMOUNT> 
        <ns2:CURRENCY>GBP</ns2:CURRENCY> 
       </ns2:TOTAL_PREMIUM> 
      </ns2:BODY> 
     </ns2:MSG> 
     </ns1:TotalCostResponse> 
    </soap:Body> 
</soap:Envelope> 

В JSON это было бы чем-то вроде;

var obj = JSON.parse(data.TotalCostResponse.MSG.BODY.TOTALCOST.AMOUNT); 

но для жизни меня я не могу разобраться, как это сделать с помощью SOAP. Любая помощь будет оценена по достоинству!

Update 1 Вызов делается с помощью метода AJAX Jquery, в соответствии с консоли MSG является неопределенным. Может ли это быть связано с пространством имен SOAP?

$.ajax({ 
type: "POST", 
url: URL, 
data: dataSet, 
dataType: "xml", 
contentType: "text/xml; charset=\"utf-8\"", 
success: function(data) { 

    obj = $.parseXML(data.TotalCostResponse.MSG.BODY.TOTAL_COST.AMOUNT); 

     }}); 

ответ

1

XML не может быть проанализирован с использованием JSON.parse, он предназначен для разбора строки JSON. Вы можете использовать jQuery.parseXML()

var obj = $.parseXML(data.TotalCostResponse.MSG.BODY.TOTALCOST.AMOUNT); 
+0

Спасибо за помощь! Я добавил проблему в обновление, если вы в состоянии помочь больше –

Смежные вопросы