Jadikan pemrosesan XML Firefox kompatibel dengan metode pemrosesan node IE. Kode spesifik tercantum di bawah ini.
Kode spesifiknya adalah sebagai berikut.
<!DOCTYPE Html PUBLIK "-//W3C//DTD HTML 4.0 Transisi//EN" >
<HTML>
<KEPALA>
< TITLE > Jadikan pemrosesan xml firefox kompatibel dengan metode selectSingleNode selectNodes IE </ TITLE >
< NAMA META ="Penulis" KONTEN ="emu" >
< NAMA META ="Kata Kunci" KONTEN ="firefox IE selectSingleNode selectNodes" >
< NAMA META ="Deskripsi" CONTENT ="Aktifkan firefox untuk mendukung metode selectSingleNode selectNodes" >
< BAHASA SKRIP ="javascript" >
<!--
var isIE = !! dokumen.semua;
fungsi parseXML(st){
jika (adalahIE){
var hasil = new ActiveXObject( " microsoft.XMLDOM " );
hasil.loadXML(st);
} kalau tidak {
var parser = DOMParser baru();
var hasil = parser.parseFromString(st, " text/xml " );
}
hasil pengembalian;
}
jika ( ! adalahIE){
var mantan;
XMLDocument.prototype.__proto__.__defineGetter__( " xml " , function (){
mencoba {
kembalikan XMLSerializer().serializeToString baru( ini );
} tangkapan (misal){
var d = dokumen.createElement( " div " );
d.appendChild( ini .cloneNode( benar ));
kembali d.innerHTML;
}
});
Elemen.prototipe.__proto__.__defineGetter__( " xml " , fungsi (){
mencoba {
kembalikan XMLSerializer().serializeToString baru( ini );
} tangkapan (misal){
var d = dokumen.createElement( " div " );
d.appendChild( ini .cloneNode( benar ));
kembali d.innerHTML;
}
});
XMLDocument.prototype.__proto__.__defineGetter__( " teks " , fungsi (){
kembalikan .firstChild.textContent ini
});
Elemen.prototipe.__proto__.__defineGetter__( " teks " , fungsi (){
kembalikan .textContent ini
});
XMLDocument.prototype.selectSingleNode = Elemen.prototype.selectSingleNode = fungsi (XPath){
var x = ini .selectNodes(xpath)
if (! x x.length < 1) kembalikan null;
kembalikan x[0];
}
XMLDocument.prototype.selectNodes = Elemen.prototype.selectNodes = fungsi (xpath){
var xpe = XPathEvaluator baru();
var nsResolver = xpe.createNSResolver( ini .ownerDocument == null ?
ini .documentElement : ini .ownerDocument.documentElement);
var hasil = xpe.evaluate(xpath, ini, nsResolver, 0, null);
var ditemukan = [];
var res;
while (res = hasil.iterateNext())
ditemukan.push(res);
pengembalian ditemukan;
}
}
var x = parseXML( " <orang> <nama depan orang= " eric " inisial tengah= " H " nama belakang= " jung " > <alamat jalan= " 321 st selatan " kota= " denver " negara bagian= " co " negara= " usa " /> <alamat jalan= " 123 jalan utama " kota= " arlington " negara bagian= " ma " negara= " usa " /> </orang> <nama depan orang= " jed " nama belakang= " coklat " > <alamat jalan= " 321 st utara " kota= " atlanta " negara bagian= " ga " negara= " usa " /> <alamat jalan= " 123 barat st " kota= " seattle " negara bagian= " wa " negara= " usa " /> <alamat jalan= " 321 jalan selatan " city= " denver " state= " co " country= " usa " /> </person></people> " );
alert( " Telusuri semua Nama belakang orang (nama belakang) " )
var hasil = x.selectNodes( " //orang/@nama belakang " );
untuk ( var i = 0 ; i < hasil.panjang;i ++ )
alert( "Orang # " + i + " mempunyai nama belakang " + hasil[i].nodeValue);
alert("Cari orang kedua");
// IE menggunakan 0 sebagai basis subskrip, bukan 1
jika ( ! dokumen.semua)
hasil = x.selectSingleNode( " /orang/orang[2] " );
kalau tidak
hasil = x.selectSingleNode( " /orang/orang[1] " );
alert(results.xml)
alert( "Cari orang yang beralamat di jalan donver" );
hasil = x.selectNodes( " //orang[alamat/@kota='denver'] " );
for ( var i = 0 ; i < hasil.panjang;i ++ )peringatan(hasil[i].xml)
if ( ! dokumen.semua){
// Dapatkan semua alamat dengan selatan di nama jalannya
hasil = x.selectNodes( " //alamat[berisi(@jalan, 'selatan')] " );
peringatan(hasil[ 0 ].xml);
} kalau tidak {
alert("IE tidak mendukung metode query //address[contains(@street, 'south')]" )
}
// -->
</SKRIP>
</KEPALA>
<TUBUH>
</BODI>
</ HTML >
Contoh dikutip dari http://kb.mozillazine.org/XPath . Seperti yang Anda lihat dari contoh, dukungan IE untuk xpath masih terbatas.