Πρόσβαση στο Νόμο XML DOM

Με το DOM, μπορείτε να προσέγγισετε κάθε κόμβο στο έγγραφο XML.

Προσέγγιση κόμβων

Μπορείτε να προσέγγισετε τους κόμβους με τρεις τρόπους:

  • Με τη χρήση της μεθόδου getElementsByTagName()
  • Με τη χρήση επαναλήψεων (παραδρομής) του δέντρο κόμβων
  • Με τη χρήση των σχέσεων των κόμβων στην δέντρο κόμβων

Μέθοδος getElementsByTagName()

getElementsByTagName() Επιστρέφει όλα τα στοιχεία με το καθορισμένο όνομα ετικέτας.

Γλωσσική

node.getElementsByTagName("tagname");

Παράδειγμα

Το παρακάτω παράδειγμα επιστρέφει όλα τα στοιχεία <title> κάτω από το στοιχείο x:

x.getElementsByTagName("title");

Παρακαλώ σημειώστε ότι ο παραπάνω παράδειγμα επιστρέφει μόνο τα στοιχεία x κάτω από το <title> στοιχείο. Για να επιστρέψετε όλα τα στοιχεία <title> στο έγγραφο XML, χρησιμοποιήστε:

xmlDoc.getElementsByTagName("title");

εδώ,xmlDoc είναι το ίδιο το έγγραφο (ο κόμβος έγγραφου).

DOM ηλέκτρονικοί κόμβοι λίστα

getElementsByTagName() Η μέθοδος επιστρέφει μια λίστα κόμβων (node list). Η λίστα κόμβων είναι μια μάζα κόμβων.

x = xmlDoc.getElementsByTagName("title");

Μπορείτε να προσέξετε τα στοιχεία του x μέσω του αριθμού κειμένου. Αν χρειάζεστε τον τρίτο <title>, μπορείτε να γράψετε έτσι:

y = x[2];

Σημείωση:το πρότυπο αρχείου ξεκινά από 0.

Δοκιμάστε το προσωπικά

Διάσταση της λίστας DOM κόμβων

length ιδιότητες για να ορίσετε την διάσταση της λίστας κόμβων (αριθμός κόμβων).

Μπορείτε να χρησιμοποιήσετε την ιδιότητα length ιδιότητες για την επαναλαμβανόμενη πλοήγηση της λίστας κόμβων:

Παράδειγμα

var x = xmlDoc.getElementsByTagName("title");
for (i = 0; i < x.length; i++) {
  // Εδώ μπορείτε να γράψετε κώδικα επεξεργασίας κάθε κόμβου
  }

Δοκιμάστε το προσωπικά

τύπος κόμβου

ιδιότητες του XML έγγραφου documentElement ιδιότητες είναι ο κόμβος κορμού.

ιδιότητες του κόμβου nodeName ιδιότητες είναι το όνομα του κόμβου.

ιδιότητες του κόμβου nodeType Οι ιδιότητες είναι ο τύπος του κόμβου.

Θα μάθετε περισσότερα για τις ιδιότητες των κόμβων στο επόμενο κεφάλαιο αυτού του教程.

Δοκιμάστε το προσωπικά

Περιήγηση κόμβων

Ο παρακάτω κώδικας επαναλαμβάνει την πλοήγηση των υποπλήροφομένων στοιχείων του κόμβου κορμού (αυτά είναι και στοιχεία):

Παράδειγμα

txt = "";
x = xmlDoc.documentElement.childNodes;
for (i = 0; i < x.length; i++) {
  // Επεξεργάζεται μόνο τα στοιχεία (τύπος 1)
  if (x[i].nodeType == 1) {
    txt += x[i].nodeName + "<br>";
  }
}

Δοκιμάστε το προσωπικά

Παράδειγμα ερμηνείας:

  1. Αν υποθέσουμε ότι έχετε ήδη το "books.xml" Εγκαταστήστε στο xmlDoc
  2. Αποκτήστε τα υποπλήροφομένα στοιχεία του κόμβου κορμού (xmlDoc)
  3. 检查每个子节点的节点类型。如果节点类型为“1" είναι στοιχείο
  4. Αν είναι στοιχείο, τότε εκτυπώνει το όνομα του κόμβου

Να navigating τις σχέσεις των κόμβων

Η παρακάτω κώδικας χρησιμοποιεί τις σχέσεις των κόμβων για να κάνει navigation στο δέντρο κόμβων:

Παράδειγμα

x = xmlDoc.getElementsByTagName("book")[0];
xlen = x.childNodes.length;
y = x.firstChild;
txt = "";
for (i = 0; i < xlen; i++) {
  // Επεξεργάζεται μόνο τα στοιχεία (τύπος 1)
  if (y.nodeType == 1) {
    txt += y.nodeName + "<br>";
  }
  y = y.nextSibling;
}

Δοκιμάστε το προσωπικά

Παράδειγμα ερμηνείας:

  1. Αν υποθέσουμε ότι έχετε ήδη το "books.xml" Εγκαταστήστε στο xmlDoc
  2. Αποκτήστε τα υποπλήροφομένα στοιχεία του πρώτου στοιχείου "book"
  3. 将“y”变量设置为第一个book元素的第一个子节点
  4. 对于每个子节点(从第一个子节点“y”开始):
  5. 检查每个子节点的节点类型。如果节点类型为“1”,则它是元素节点
  6. 如果是元素节点,则输出该节点的名称
  7. 将“y“变量设置为下一个同级节点,并再次运行循环”