Rumah >hujung hadapan web >tutorial js >Cara menukar XML ke objek JavaScript seperti JSON
mata teras
fungsi xml2jsobj
Kami akan menulis fungsi yang menganalisis setiap nod dokumen XML Dom Tree dan mengembalikan objek JavaScript. Fungsi ini melepasi nod permulaan (biasanya dokumentasi akar) dan mengembalikan objek (data bernama dalaman):
function XML2jsobj(node) { var data = {}; // 添加值 function Add(name, value) { if (data[name]) { if (data[name].constructor != Array) { data[name] = [data[name]]; } data[name][data[name].length] = value; } else { data[name] = value; } }; // 元素属性 var c, cn; for (c = 0; cn = node.attributes[c]; c++) { Add(cn.name, cn.value); } // 子元素 for (c = 0; cn = node.childNodes[c]; c++) { if (cn.nodeType == 1) { if (cn.childNodes.length == 1 && cn.firstChild.nodeType == 3) { // 文本值 Add(cn.nodeName, cn.firstChild.nodeValue); } else { // 子对象 Add(cn.nodeName, XML2jsobj(cn)); } } } return data; }
penukaran xml
Panggilan Ajax kami boleh mengambil XML dari perkhidmatan web:
// 示例 XML 提要 var url = "example.xml"; // AJAX 请求 var xhr = (window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP")); xhr.onreadystatechange = XHRhandler; xhr.open("GET", url, true); xhr.send(null);XMLHTTPREQUEST kami OnreadyStateChange Handler menerima data XML dan mengubahnya menjadi objek JavaScript:
// 处理响应 function XHRhandler() { if (xhr.readyState == 4) { var obj = XML2jsobj(xhr.responseXML.documentElement); // 对返回的数据执行某些操作... console.log(obj); xhr = null; } }jadi, jika contoh.xml mengembalikan data XML berikut:
<?xml version="1.0"?><statuses><status><id>1</id><text>Hello!</text></status></statuses>xml2jsobj (xhr.responsexml.documentElement) akan mengembalikan objek berikut:
{ status: { id: ["one", 1], text: "Hello!" } }Oleh itu, anda boleh menggunakan obj.status.text untuk mengambil "Hello!"
Langkah berjaga -jaga
beberapa nota mengenai xml2jsobj:anda boleh melihat halaman demo atau muat turun kod dan contoh untuk digunakan dengan projek anda sendiri. Saya harap anda dapati ia berguna - jika anda mendapati ia mengurangkan beberapa teka -teki XML, beritahu saya!
Soalan Lazim pada Menukar XML ke Objek JavaScript (Bahagian ini telah diselaraskan dan diselaraskan berdasarkan teks asal untuk mengelakkan pertindihan)
Atas ialah kandungan terperinci Cara menukar XML ke objek JavaScript seperti JSON. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!