0

一部のページを高速化するために、Webサービスでajaxを使用できるように取り組んでいます。以下は私が作業しているサンプルですが、これをさまざまなWebサービスの複数のページで使いやすくしたいと思います。ノード名を知らなくてもXMLを解析する方法はありますか?したがって、以下の例では$(this).find('ID')。text()を実行しますが、最初のノードを見つけてその名前を動的に取得してから、名前のあるヘッダー行と値のある値行。また、列や行の数を知らずにこれを実行したいと思います。

            $.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');
            }
        });

*編集: * jquery.parseXMLを見ましたが、$ title = $ xml.find( "title");のようなものを使用していない例は見つかりません。

4

2 に答える 2

0

XMLDOMを使用してノード内を移動できます。http://www.w3schools.com/dom/dom_node.aspを参照してください

于 2013-02-14T02:20:14.843 に答える
0

JSONを使用して、応答ごとにスキーマ配列を送信することをお勧めします

{"columns":["ID","StartDate","EndDate","Title"],
  "data" :[ [1, "12/12/2012", "1/1/2013","Manager"]]
}
于 2013-02-14T02:29:39.347 に答える