2008-09-04 19 views
25

मेरे पास एक एक्सएमएल ऑब्जेक्ट है (XMLHTTPRequest के responseXML का उपयोग करके लोड किया गया)। मैंने ऑब्जेक्ट को संशोधित किया है (jQuery का उपयोग करके) और इसे स्ट्रिंग में टेक्स्ट के रूप में स्टोर करना चाहते हैं।एक क्रॉस ब्राउज़र तरीके से जावास्क्रिप्ट का उपयोग करते हुए, मैं एक XML को XML टेक्स्ट में क्रमबद्ध कैसे कर सकता हूं?

वहाँ जाहिरा तौर पर फ़ायरफ़ॉक्स एट अल में यह करने के लिए एक आसान तरीका है:

var xmlString = new XMLSerializer().serializeToString(doc); 

(rosettacode से)

लेकिन यह कैसे एक IE6 और अन्य ब्राउज़रों (में यह क्या करता है, के बिना बेशक, फ़ायरफ़ॉक्स तोड़ना)?

उत्तर

35

आप इंटरनेट एक्सप्लोरर में doc.xml का उपयोग कर सकते हैं।

आप कुछ इस तरह मिल जाएगा:

function xml2Str(xmlNode) { 
    try { 
     // Gecko- and Webkit-based browsers (Firefox, Chrome), Opera. 
     return (new XMLSerializer()).serializeToString(xmlNode); 
    } 
    catch (e) { 
    try { 
     // Internet Explorer. 
     return xmlNode.xml; 
    } 
    catch (e) { 
     //Other browsers without XML Serializer 
     alert('Xmlserializer not supported'); 
    } 
    } 
    return false; 
} 

यह here मिले।

+6

XMLSerializer() IE9 में काम करेगा। –

+0

धन्यवाद ... आखिर में खोज के दो दिनों के बाद मुझे यह मिला। (मुझे यह महसूस करने में थोड़ी देर लग गई कि एफएफ/क्रोम के लिए एक्सएमएल बस नहीं था, मैंने सोचा था कि मैं कुछ गलत कर रहा था।) –

+0

वेबकिट में वर्तमान में एक बग है (उदाहरण के लिए क्रोम 1 9 में) और सही एक्सएमएल वापस नहीं करेगा: xmlNode = document.createElement ('img'); xmlNode.src = "test.png" xmlNode.alt = "test" (नया XMLSerializer())। SerializeToString (xmlNode); रिटर्न: "test" – cburgmer