2015-10-26 4 views
0

после вызова Ajax, как это:Аякса доступа к XML-узлов

$.ajax({ 
      //web service pubblico di prova 
      url: "*web service*"  
      type: 'POST', 
      dataType: "xml", 

      processData: false, 

      contentType: "text/xml", 

      data: soapMessage, 
      success: function(soapResponse){ 
       //must access the xml tag HERE     
      var ss= $(soapResponse); 
      //like this i see all the xml 
      alert(ss.text()); 
       }, 
       error: function (request, status, error) { 
        alert(request); 
        alert(status); 
        alert(error); 
       } 
      }); 
    } 

У меня есть XML, как это:

<ROOT> 
<ElencoSoggettiTemplate> 
<SoggettiTemplate ID="1" Codice="2" Descrizione="aaa" ...> 
<SoggettiTemplate ID="2" Codice="3" Descrizione="bbb" ...> 
... 
</ElencoSoggettiTemplate> 
<TOTREC>0</TOTREC> 
<PAGECOUNT>0</PAGECOUNT> 
</ROOT> 

все, что я хочу сделать, это получить все атрибуты из SoggettiTemplate , как ID,Codice ... делая это var alert($(soapResponse.text())) Я могу видеть всю структуру, как это soapResponse.getElementsByTagName("ElencoSoggettiTemplate") Я получаю HTMLCollection, но я не могу продолжать, и кол-во подсчет дает мне 0.

+0

да, но я предпочитаю используя Ajax – Lorenzo

ответ

1

Я решил делать так:

$.ajax({ 
      //web service pubblico di prova 
      url: "*web service*", 
      type: 'POST', 
      dataType: "xml", 

      processData: false, 

      contentType: "text/xml", 

      data: soapMessage, 
      success: function(soapResponse){ 
       var xhttp = new XMLHttpRequest(); 

       var ss= $(soapResponse); 
       alert($(soapResponse).text()); 
       var result=$(soapResponse).find("SoggettiTemplate").text(); 

       $('SoggettiTemplate',ss.text()).each(function(i){ 
        var ID= $(this).attr("ID"); 
        var ID= $(this).attr("ID"); 
        //getting the id parameter 
       }) 



       }, 
       error: function (request, status, error) { 
        alert(request); 
        alert(status); 
        alert(error); 
       } 
      }); 
-2

Вам нужно преобразовать XML-строку в объект JS DOM, а затем применить методы DOM к xmlDoc.

var xmlob = new DOMParser(); 
var xmlDoc = xmlob.parseFromString(xml_string,"text/xml"); 
var tags = xmlDoc.getElementsByTagName('tag_ame'); 
//...traverse tags with for() instruction 

Обратитесь к руководству с этой страницы: http://coursesweb.net/ajax/ajax-xml

имеет пример с getElementsByTagName и GetAttribute()

+0

Я уже видел этот учебник, моя проблема в том, что когда я получаю getElementsByTagName («SoggettiTemplate»), я получаю пустую коллекцию html – Lorenzo

+0

Убедитесь, что если вы отправляете ссылки ссылки на свой собственный созданный контент, который вы раскрываете, что он принадлежит вам. –

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