Διαφορές του Προγράμματος του Browser για το XML DOM

Οι διαφορετικοί περιηγητές χειρίζονται διαφορετικά τους κενά κείμενου κόμβους στο XML DOM.

Παράδειγμα

Το παρακάτω παράδειγμα χρησιμοποιεί το αρχείο XML books.xml.

Συνάρτηση loadXMLDoc()Παράδειγμα που βρίσκεται στο εξωτερικό JavaScript, για τη φόρτωση του αρχείου XML.

Εμφάνιση της διάρκειας της λίστας των κόμβων
Αυτό το παράδειγμα εμφανίζει την διάρκεια της λίστας των κόμβων. Ο αποτέλεσμα είναι διαφορετικό στους IE και τους άλλους περιηγητές.
Αγνοήστε τους κενό κόμβους μεταξύ των κόμβων
Αυτό το παράδειγμα ελέγχει τον τύπο του κόμβου nodeType και χειρίζεται μόνο τους κόμβους στοιχείων.

Διαφορές μεταξύ των περιηγητών στη διαδικασία DOM

Όλοι οι σύγχρονοι περιηγητές υποστηρίζουν τα πρότυπα W3C DOM.

Αλλά, υπάρχουν διαφορές μεταξύ των περιηγητών. Οι σημαντικές διαφορές είναι δύο:

  • Διαφορετικοί τρόποι φόρτωσης του XML
  • Διαφορετικοί τρόποι χειρισμού των κενών και των αλλαγών γραμμής

Σε "Ανάλυση του XML DOMΑυτό το κεφάλαιο, έχει εξηγήσει διαφορετικούς τρόπους φόρτωσης του XML.

Σε αυτή την ενότητα, θα εξηγήσουμε διαφορετικούς τρόπους χειρισμού των κενών και των αλλαγών γραμμής.

DOM - Κενά και αλλαγές γραμμής

Το XML συχνά περιέχει ανάμεσα στους κόμβους κενά ή χαρακτήρες λευκής διάστασης. Αυτό είναι ένα συχνό φαινόμενο όταν χρησιμοποιείται απλός επεξεργαστής κειμένου (π.χ. Notebook).

Ο παρακάτω παράδειγμα (επεξεργασμένο από το Notebook) περιέχει CR/LF μεταξύ των γραμμών και δύο κενά πριν από κάθε υποκίμβολο:

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

Firefox, και άλλοι μερικοί περιηγητές, θα χειριστούν τα κενά κενά ή τις αλλαγές γραμμής ως κείμενο κόμβους, ενώ ο Internet Explorer δεν θα κάνει αυτό.

Το παρακάτω κείμενο κώδικα δείχνει πόσα υποστοιχεία έχει το ρίζα στοιχείο (books.xml):

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.documentElement.childNodes;
document.write("Αριθμός υποκόμβων: " + x.length);

Παράδειγμα εξήγησης:

  • Με τη χρήση loadXMLDoc() Το "books.xml" Καταχωρήστε στο xmlDoc
  • Αποκτήστε τους υποκόμβους του ρίζα στοιχείου
  • Εξάγει τον αριθμό των υποκόμβων

Τα αποτελέσματα εξαρτώνται από τον προγράμματος περιήγησης που χρησιμοποιείτε. Ο Firefox εξάγει 9 ενώ ο IE εξάγει 4.

TIY

Αγνοήστε τους κενό κόμβους μεταξύ των κόμβων

Για να αγνοήσετε τους κενό κόμβους μεταξύ των στοιχείων, πρέπει να ελέγξετε τον τύπο του κόμβου. Ο τύπος του στοιχείου είναι 1:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.documentElement.childNodes;
for (i=0;i<x.length;i++)
{ 
if (x[i].nodeType==1)
  { // Λειτουργία μόνο για κόμβους στοιχείου 
  document.write(x[i].nodeName);
  document.write("<br />");
  } 
}

Παράδειγμα εξήγησης:

  • Με τη χρήση loadXMLDoc() Το "books.xml" Καταχωρήστε στο xmlDoc
  • Αποκτήστε τους υποκόμβους του ρίζα στοιχείου
  • Ελέγξτε τον τύπο του κάθε υποκόμβου. Αν ο τύπος του κόμβου είναι "1", είναι κόμβος στοιχείου

TIY (ελαφρύ) ή TIY (πλήρες)