Analysoi XML DOM
- Edellinen sivu DOM-puun solmut
- Seuraava sivu DOM-lataus
Useimmat selaimet sisältävät XML:n lukemiseen ja käsittelemiseen tarkoitetun XML-tulkinnan.
Tulkki muuntaa XML:n JavaScriptin kautta käytettävään objektiin.
Esimerkki
CodeW3C.com tarjoamat esimerkit ovat riippumattomia selaimista ja alustoista. Nämä esimerkit toimivat kaikissa nykyaikaisissa selaimissa.
Tulkita XML
Kaikki nykyaikaiset selaimet sisältävät XML:n lukemiseen ja käsittelemiseen tarkoitetun XML-tulkinnan.
Tulkki lukee XML:n muistiin ja muuntaa sen JavaScriptin kautta käytettävään XML DOM-objektiin.
Microsoftin XML-tulkki eroaa muista selaimien tulkkeista. Microsoftin tulkki tukee XML-tiedostojen ja XML-merkkijonojen (tekstin) lataamista, kun taas muut selaimet käyttävät erillistä tulkintaohjelmaa. Kaikissa tulkkeissa on kuitenkin toimintoja XML-puun läpikäymiseen, solmujen katseluun, lisäämiseen ja poistamiseen.
Tässä opetusohjelmassa selitämme, miten luodaan skriptejä, jotka toimivat IE:ssä ja muilla selaimilla.
Ladataan XML Microsoftin XML-tulkilla
Microsoftin XML-tulkki on sisäänrakennettu Internet Explorer 5 ja uudempaan versioon.
Seuraava JavaScript-kappale lataa XML-dokumentin ("books.xml) Lataa analysoija:
xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.load("books.xml");
Koodin selitys:
- Ensimmäinen rivi luo tyhjän Microsoft XML-dokumenttiohjelman objektin
- Toinen rivi sulkee asynkronisen latauksen, jotta varmistetaan, että analysoija ei jatka skriptin suorittamista ennen kuin dokumentti on täysin ladattu
- Kolmas rivi kertoo analysoijalle ladata nimeltä "books.xml" dokumenttia
Seuraava JavaScript-kappale lataa nimeltä txt merkkijonon analysoijaan:
xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(txt);
Huomautus:loadXML() menetelmä käytetään merkkijonon (tekstin) lataamiseen, ja load() Käytetään tiedoston lataamiseen.
XML-analysoija Firefoxissa ja muissa selaimissa
Seuraava JavaScript-kappale lataa XML-dokumentin ("books.xml) Lataa analysoija:
xmlDoc=document.implementation.createDocument("","",null); xmlDoc.async="false"; xmlDoc.load("books.xml");
Koodin selitys:
- Ensimmäinen rivi luo tyhjän XML-dokumenttiolion
- Toinen rivi sulkee asynkronisen latauksen, jotta varmistetaan, että analysoija ei jatka skriptin suorittamista ennen kuin dokumentti on täysin ladattu
- Kolmas rivi kertoo analysoijalle ladata nimeltä "books.xml" dokumenttia
Seuraava JavaScript-kappale lataa nimeltä txt merkkijonon analysoijaan:
parser=new DOMParser(); xmlDoc=parser.parseFromString(txt,"text/xml");
Koodin selitys:
- Ensimmäinen rivi luo tyhjän XML-dokumenttiolion
- Toinen rivi kertoo analysoijalle ladata nimeltä txt merkkijonoa
Huomautus:Internet Explorer käyttää loadXML() menetelmä analysoimaan XML-merkkijonoa, kun taas muut selaimet käyttävät DOMParser objekti.
XML-tiedoston analysointi - yksi monikirjoittimellinen esimerkki
Seuraava esimerkki luo XML-dokumentin ("books.xml) Lataa XML-tulkki:
<html> <body> <script type="text/javascript"> try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); } catch(e) { try //Firefox, Mozilla, Opera, jne. { xmlDoc=document.implementation.createDocument("","",null); } catch(e) {alert(e.message)} } try { xmlDoc.async=false; xmlDoc.load("books.xml"); document.write("xmlDoc is loaded, ready for use"); } catch(e) {alert(e.message)} </script> </body> </html>
Virhe: Ylialueen pääsy
Turvallisuussyistä nykyaikaiset selaimet eivät salli ylialueen pääsyä.
Tämä tarkoittaa, että verkkosivu ja se yrittää ladata XML-tiedoston, täytyy olla samalla palvelimella.
CodeW3C.com:n esimerkissä avattu XML-tiedosto sijaitsee CodeW3C.com:n alueella.
Jos aiot käyttää yllä olevaa esimerkkiä omalla verkkosivullasi, sinun täytyy sijoittaa XML-tiedosto omaan palvelimellesi. Muuten xmlDoc.load() tuottaa virheen "Access is denied".
XML-merkkijonon analysointi - yksi monikirjoittimellinen esimerkki
Seuraava koodi luo ja analysoi XML-merkkijonon:
<html> <body> <script type="text/javascript"> text="<bookstore>" text=text+"<book>"; text=text+"<title>Harry Potter</title>"; text=text+"<author>J K. Rowling</author>"; text=text+"<year>2005</year>"; text=text+"</book>"; text=text+"</bookstore>"; try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(text); } catch(e) { try //Firefox, Mozilla, Opera, jne. { parser=new DOMParser(); xmlDoc=parser.parseFromString(text,"text/xml"); } catch(e) {alert(e.message)} } document.write("xmlDoc is loaded, ready for use"); </script> </body> </html>
Huomautus:Internet Explorer käyttää loadXML()-menetelmää XML-merkkijonon analysointiin, kun taas muut selaimet käyttävät DOMParser-objekti.
- Edellinen sivu DOM-puun solmut
- Seuraava sivu DOM-lataus