2009-07-13 4 views
3

Я получаю данные пользовательской схемы обратно из вызова AJAX, и мне нужно проанализировать его с помощью jQuery. есть идеи как это сделать?Разбор пользовательской XML-схемы с jQuery

Вот 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> 

А вот вызов AJAX. Я могу разобрать обычный XML с приведенным ниже, но не с XSD.

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

     dataType: "html", 

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

Любые идеи?

ответ

0

Я не проверял это, но вы пробовали:

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

    dataType: "html", 

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

context аргумент JQuery ожидает DOM-элемент.

returnhtml будет HTML-строка в соответствии с jQuery's ajax() documentation, если вы установите dataType как HTML. Если это XML-строка, вам нужно будет преобразовать JQuery в элемент, с которым вы можете работать сперва, прежде чем использовать его в качестве контекста.

0

Для этого вы можете использовать $.parseXML.

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

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

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