2013-02-14 7 views
0

Я работаю над получением наших веб-сервисов для использования ajax в попытке ускорить работу некоторых страниц. Ниже приведен образец, который у меня есть, но я хотел бы сделать его более удобным для использования на нескольких страницах с различными веб-сервисами. Есть ли способ проанализировать XML, не зная имена узлов? Поэтому в моем примере ниже я делаю $ (this) .find ('ID'). Text(), но то, что я хочу сделать, это просто найти первый узел и получить его имя динамически, а затем создать строка заголовка с именем и строкой значений со значениями. Я также хочу сделать это, не зная, сколько столбцов и/или строк.jquery ajax parsing xml without find

  $.ajax({ 
      url: 'http://localhost:51558/Service1.asmx/GetData', 
      type: 'GET', 
      dataType: 'xml', 
      success: function (xml) { 
       var tbl = '<table border="1"><tr><th>ID</th><th>StartDate</th><th>EndDate</th><th>Title</th></tr>'; 
       $(xml).find('SiteMessages ').each(function() { 
        tbl += '<tr><td>' + $(this).find('ID').text() + '</td>'; 
        tbl += '<td>' + $(this).find('StartDate').text() + '</td>'; 
        tbl += '<td>' + $(this).find('EndDate').text() + '</td>'; 
        tbl += '<td>' + $(this).find('Title').text() + '</td></tr>'; 
       }); 
       $('#datagrid').html(tbl + '</table>'); 
       alert('success'); 
      } 
     }); 

* EDIT: * Я посмотрел на jquery.parseXML, но я не могу найти ни одного примера, где он не использует что-то вроде $ TITLE = $ xml.find ("название");

+0

ли эта помощь? http://www.devx.com/xml/Article/11866 –

ответ

0

Вы можете использовать XML DOM для навигации по узлам. См в http://www.w3schools.com/dom/dom_node.asp

+0

Я подумал об этом прошлой ночью и начал писать рекурсивный метод, чтобы перебрать все узлы и их детей. Мне все еще нужно использовать .find, но я могу сделать это с чем-то вроде $ (this) .find (this.nodeName) .text(). Это, по крайней мере, даст мне некоторую гибкость в том, как я обрабатываю XML. Благодарю. –

0

Я хотел бы предложить вам использовать JSON и отправить массив схемы с каждым ответом

{"columns":["ID","StartDate","EndDate","Title"], 
    "data" :[ [1, "12/12/2012", "1/1/2013","Manager"]] 
} 
+0

Json, похоже, хочет ответить, когда кто-то говорит об ajax, но в моем случае я застрял в XML. Благодарю. –

+0

Почему застрял в xml? JSON легче по размеру и проще работать, и каждый сервер имеет поддержку JSON – charlietfl

+0

Я застрял в XML, потому что это то, что будет возвращено из реального веб-сервиса. С тех пор я нашел функцию, которая переведет XML в Json, и у меня есть мои основные функции, написанные для того, чтобы делать то, что я хотел, и только нужно передать URL-адрес веб-сервису. –