Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Menghuraikan Rentetan XML Dinamik dalam JavaScript Menggunakan Kaedah Serasi Penyemak Imbas Moden dan Legasi?

Bagaimanakah Saya Boleh Menghuraikan Rentetan XML Dinamik dalam JavaScript Menggunakan Kaedah Serasi Penyemak Imbas Moden dan Legasi?

DDD
DDDasal
2024-12-16 11:32:12975semak imbas

How Can I Parse Dynamic XML Strings in JavaScript Using Modern and Legacy Browser Compatible Methods?

Penghuraian XML Rentetan Dinamik dalam JavaScript

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:

Kaedah DOMParser

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"

ActiveXObject (untuk Sokongan IE Legacy)

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");
}

Keserasian jQuery

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn