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