AJAX

2010-10-18 14 views
13

में xml प्रतिक्रिया को पार्स करने का सबसे अच्छा तरीका क्या है मेरे पास एक सर्वर है जो XML के साथ अनुरोध का जवाब देता है, मैं इसे जावास्क्रिप्ट में पार्स करना चाहता हूं। मुझे वास्तव में एक्शनस्क्रिप्ट xml पार्सर पसंद है जो मेरे लिए उपयोग करना वास्तव में आसान है। मैं घूम रहा हूं क्या सर्वर से प्राप्त एक्सएमएल को पार्स करने के लिए एक बहुत ही आसान/सीधा तरीका है?AJAX

आदर्श उपयोग किया जाना चाहिए:

fetchXML नई XMLParser। parser.parse दस्तावेज़ तक पहुंचें।

बीटीडब्ल्यू मैं jquery का उपयोग करने की योजना बना रहा हूं।

उत्तर

19

एक नियमित $.ajaxdataType: "xml" साथ चाल करना होगा, तो आप सामग्री आप की तरह jQuery चयनकर्ताओं के साथ हैं एक सरल वेब पेज (जैसे उदाहरण में attr समारोह प्रत्येक पुस्तक नोड के "कोड" क्षेत्र को पुनः प्राप्त करने ब्राउज़ कर सकते हैं या विशिष्ट नोड प्रकार खोजने के लिए find फ़ंक्शन)।

उदाहरण के लिए, आप शीर्षक द्वारा किसी विशिष्ट पुस्तक खोजने के लिए इस कर सकता है:

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

जहां xml डेटा success हैंडलर $.ajax से प्राप्त करता है।

<!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> 

और उससे मिलते-जुलते एक्सएमएल फ़ाइल:

<?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

धन्यवाद


यहाँ पूर्ण उदाहरण है! अगर मैं नहीं खोजना चाहता हूं और परिणाम में केवल " है, तो मैं" पुस्तक "तत्व का संदर्भ कैसे दे सकता हूं? –

+1

$ (xml) .find (" book ") आपको एक सूची देता है पुस्तक नोड्स। "प्रत्येक" लूप में, $ (यह) पुस्तक नोड का संदर्भ है। – wildpeaks

+0

हाँ, लेकिन मेरे कोड के लिए मैं खोज नहीं चाहता क्योंकि यह अनावश्यक है, मेरे पास केवल एक पुस्तक तत्व है, क्या यह संभव है बिना किसी खोज के सीधे इसका संदर्भ लें? –

3

सही सामग्री प्रकार के साथ डेटा लौटें (उदा। application/xml) और एक्सएचआर आपके लिए इसे पार्स करेगा।

यह भी देखें: jQuery के ajax method के लिए डेटा टाइप तर्क।

 संबंधित मुद्दे