Masalah: Bekerja dengan data XML selalunya melibatkan pengambilan semula sebagai rentetan daripada sumber dinamik. Bagaimanakah kita boleh menghuraikan dan memanipulasi data XML ini dengan berkesan menggunakan kod JavaScript yang serasi dengan penyemak imbas moden?
Penyelesaian:
Untuk penyemak imbas menyokong antara muka DOMParser, fungsi berikut menyediakan penghuraian XML yang mudah mekanisme:
function parseXml(xmlStr) { return new window.DOMParser().parseFromString(xmlStr, "text/xml"); }
Contoh penggunaan:
var xml = parseXml('<foo>Stuff</foo>'); console.log(xml.documentElement.nodeName); // Outputs: "foo"
Dalam kes DOMParser tidak tersedia, seperti dalam versi Internet Explorer ke atas hingga 8, coretan kod berikut memberikan sandaran menggunakan ActiveXObject:
var parseXml; if (typeof window.DOMParser != "undefined") { parseXml = function(xmlStr) { return new window.DOMParser().parseFromString(xmlStr, "text/xml"); }; } else if (typeof window.ActiveXObject != "undefined" && new window.ActiveXObject("Microsoft.XMLDOM")) { parseXml = function(xmlStr) { var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = "false"; xmlDoc.loadXML(xmlStr); return xmlDoc; }; } else { throw new Error("No XML parser found"); }
jQuery versi 1.5 dan kemudian termasuk kaedah $.parseXML() yang mudah yang menawarkan fungsi yang serupa:
var xml = $.parseXML('<foo>Stuff</foo>'); console.log(xml.documentElement.nodeName); // Outputs: "foo"
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghuraikan Rentetan XML Dinamik dalam JavaScript Menggunakan Kaedah Serasi Penyemak Imbas Moden dan Legasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!