2010-10-18 17 views
13

Mam serwer, który odpowiada na żądanie z XML, chcę przetworzyć go w javascript. Bardzo podoba mi się parser ActionScript xml, który jest naprawdę łatwy w użyciu. Błąkałem się, czy istnieje bardzo łatwy/prosty sposób na sparsowanie XML-a pobranego z serwera?jaki jest najlepszy sposób na parsowanie odpowiedzi xml w AJAX

Idealne wykorzystanie powinno być:

fetchXML nowy XMLParser. parser.parse dostęp do dokumentu.

przy okazji planuję użyć jquery.

Odpowiedz

19

Regularne $.ajax z dataType: "xml" rade, a następnie można przeglądać zawartość z jQuery selektorów takich jak ty by strona prosta internetowa (np funkcja w przykładzie attr odzyskać „Kodeks” pole każdego węzła książkowej lub funkcja find w celu znalezienia określonych typów węzłów).

Na przykład, można to zrobić, aby znaleźć konkretną książkę o tytule:

$(xml).find("book[title='Cinderella']") 

gdzie xml to dane handler success otrzymuje od $.ajax.


Oto pełna przykład:

<!DOCTYPE html> 
<html> 
<head> 
<title>jQuery and XML</title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<meta name="language" content="en" /> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
</head> 
<body 

<div id="output"></div> 

<script type="text/javascript"> 
$(document).ready(function(){ 
$.ajax({ 
    type: "GET", 
    dataType: "xml", 
    url: "example.xml", 
    success: function(xml){ 
    $(xml).find("book").each(function(){ 
    $("#output").append($(this).attr("code") + "<br />"); 
    }); 
    } 
}); 
}); 
</script> 


</body> 
</html> 

I pasujący plik XML:

<?xml version="1.0" encoding="UTF-8"?> 
<books title="A list of books"> 
<book code="abcdef" /> 
<book code="ghijklm"> 
    Some text contents 
</book> 
</books> 
+0

Dzięki! Jeśli nie chcę znaleźć, a wynik zawiera tylko " jak mogę odwołać się do elementu" książka "? –

+1

$ (xml) .find (" książka ") daje ci listę $ (this) jest odniesieniem do węzła książki: – wildpeaks

+0

tak, ale dla mojego kodu nie chcę znalezienia, ponieważ jest to niepotrzebne, mam tylko jeden element książki, czy jest to możliwe aby odnosić się do niego bezpośrednio, bez wyszukiwania? –

3

Zwróć dane z właściwym typem zawartości (np. application/xml), a XHR przetworzy je dla Ciebie.

Zobacz także: argument dataType dla jQuery's ajax method.

Powiązane problemy