2010-06-09 64 views
4

我用下面的jQuery返回駐留在同一子一個xml:如何使用jquery處理從jsonp返回的xml?

$.getJSON(myurl, function(data) 
{ 
    debugger; 
    alert(data); 
}); 

現在,每當我在Firebug運行此,我得到的螢火一個js錯誤說:缺少;在陳述之前。返回的數據如下所示:

<?xml version="1.0" encoding="utf-8"?> 
<string xmlns="somenamespace">...somedata...</string> 

我想要的數據被返回,但我不確定如何使用它。我需要訪問somedata,但我無法。 Firebug甚至不會停止功能。我該如何正確進行?

回答

0

看起來好像您希望返回XML,但您調用的是期望JSON的函數。 XML和JSON是編碼數據的兩種不同方式。

如果你想把XML作爲一個字符串,那麼你可以使用jQuery的get函數。這需要您自己解析字符串以提取...somedata...

但是,如果你想處理與jQuery的XML響應的內容,那麼你最好的選擇是使用ajax功能:

$.ajax({ 
    url: myurl, 
    dataType: 'xml', 
    success: function(data) { 
     debugger; 
     alert(data); 
     // untested: 
     var theValue = $('string', data).text(); 
    } 
}); 
+1

謝謝,這是否工作時的URL是在不同的領域? – vikasde 2010-06-10 13:29:05

+0

使用xml數據類型時,我得到了一個403。 – vikasde 2010-06-10 13:33:49

+1

http://api.jquery.com/jQuery.ajax/#dataType 例如,如果您希望將文本響應視爲XML,請將「text xml」用於dataType。您還可以創建JSONP請求,將其作爲文本接收,並由jQuery解釋爲XML:「jsonp text xml」。同樣,諸如「jsonp xml」之類的簡寫字符串將首先嚐試從jsonp轉換爲xml,並且如果失敗,則從jsonp轉換爲文本,然後再從文本轉換爲xml。 – jhanifen 2011-05-09 20:49:09