XML DOM selaimen erot

Eri selaimet käsittelevät XML-DOMissa tyhjiä tekstipisteitä eri tavoin.

Esimerkki

Alla olevassa esimerkissä käytetään XML-tiedostoa books.xml.

Funktio loadXMLDoc(),sijaitsee ulkoisessa JavaScriptissä ja käytetään XML-tiedoston lataamiseen.

Näytä solmujen luettelon pituus
Tässä esimerkissä näytetään solmujen luettelon pituus. IE:ssä ja muissa selaimissa tuloksena on eri.
Sivuuta solmuja välillä olevat tyhjät tekstit
Tässä esimerkissä tarkistetaan solmun nodeType ja käsitellään vain elementtisolmuja.

Selaimien erot DOM-parsinnassa

Kaikki nykyaikaiset selaimet tukevat W3C DOM-sääntöjä.

Kuitenkin, selaimet eroavat toisistaan. Tärkeät erot ovat kaksi:

  • XML:n lataustavat
  • Tyhjien välitysten ja rivinvaihtojen käsittelytavat

XML DOM analyysi”Tässä luvussa on selitetty eri tavat ladata XML.

Tässä luvussa selitetään eri tavat käsitellä tyhjiä välitä ja rivinvaihtoja.

DOM - tyhjät välit ja rivinvaihdot

XML sisältää usein rivinvaihtoja tai välilyöntejä solmujen välillä. Tämä on yleistä tilanne, kun käytetään yksinkertaista editoria (esim. muistiinpanojournali).

Alla olevassa esimerkissä (muokattu muistiinpanojournalissa) on CR/LF jokaisen rivin välissä ja kaksi välilyöntiä jokaisen alijärjesteen edessä:

<book>
  <title>Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>

Firefox ja muut selaimet käsittelevät tyhjiä välilyöntejä tai rivinvaihtoja tekstipisteinä, kun taas Internet Explorer ei tee niin.

Seuraava koodikappale näyttää, kuinka monta alisolmua (books.xml:n) juurisolmu omaa:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.documentElement.childNodes;
document.write("Number of child nodes: " + x.length);

Esimerkki selityksestä:

  • Käyttämällä loadXMLDoc() Lataa "books.xml"Lataa xmlDoc:ssa"
  • Hanki juurisolmun alisolut
  • Tulosta alisolmun määrä

Tulostus riippuu käytetystä selaimesta. Firefox tulostaa 9, kun taas IE tulostaa 4.

TIY

Sivuuta solmuja välillä olevat tyhjät tekstit

Jos haluat sivuuttaa elementtisolmut välillä olevat tyhjät tekstit solmut, sinun täytyy tarkistaa solmun tyyppi. Elementti-solmun tyyppi on 1:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.documentElement.childNodes;
for (i=0;i<x.length;i++)
{ 
if (x[i].nodeType==1)
  {// only process element nodes 
  document.write(x[i].nodeName);
  document.write("<br />");
  } 
}

Esimerkki selityksestä:

  • Käyttämällä loadXMLDoc() Lataa "books.xml"Lataa xmlDoc:ssa"
  • Hanki juurisolmun alisolut
  • Tarkista jokaisen alikohdan solmun tyyppi. Jos solmun tyyppi on "1", se on elementti

TIY (yksinkertainen) tai TIY (täysin)