5

I am getting custom schema data back from an AJAX call and I need to parse it using jQuery. Any idea how to do this?

Here's the XML:

<xsd:get_customer_summary_response xmlns:xsd="http://com/acmeco/ovm/cas/xsd">
  <xsd:customer_details>
    <typ:phone_number xmlns:typ="http://com/acmeco/ovm/cas/types">1.555.5553002</typ:phone_number>
    <typ:timezone xsi:nil="true" xmlns:typ="http://com/acmeco/ovm/cas/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
    <typ:zipcode xmlns:typ="http://com/acmeco/ovm/cas/types">3002</typ:zipcode>
...
  </xsd:customer_details>
</xsd:get_customer_summary_response>

And here's the AJAX call. I can parse normal XML with the below, but not XSD stuff.

   $.ajax({
       type: "GET",
       url: "so.xml",

       dataType: "html",

        success: function(returnhtml){ 
    $("customer_details", returnhtml).find("zipcode").each(function() {
        alert($(this).text());
    });
    }, etc.

Any ideas?

thermans
  • 1,169
  • 2
  • 14
  • 24

2 Answers2

0

I haven't tested this, but have you tried:

$.ajax({
   type: "GET",
   url: "so.xml",

   dataType: "html",

    success: function(returnhtml){ 
    $(returnhtml).find("customer_details zipcode").each(function() {
        alert($(this).text());
    });
}, etc.

The context argument of jQuery expects a DOM element.

returnhtml will be an HTML string according to jQuery's ajax() documentation if you set the dataType as HTML. If it's an XML string, you'd need to have jQuery convert it into an element you can work with first, before using it as context.

Dan Herbert
  • 99,428
  • 48
  • 189
  • 219
0

You can use $.parseXML for it.

success: function (returnhtml) { 
    var parsedXML = $.parseXML(returnhtml);
    $(parsedXML).find("zipcode").each(function() {
        alert($(this).text());
    });
}

https://jsfiddle.net/chukanov/jjt894dc/

Anton Chukanov
  • 645
  • 5
  • 20