Θέση στοιχείων του XML DOM
- Προηγούμενη σελίδα DOM περιηγητής
- Επόμενη σελίδα DOM λήψη κόμβων
η τοποθεσία του κόμβου μπορεί να καθοριστεί χρησιμοποιώντας τη σχέση μεταξύ κόμβων.
Παράδειγμα
Ο παρακάτω παράδειγμα χρησιμοποιεί αρχείο XML books.xml.
λειτουργία loadXMLDoc()τοποθετημένος στο εξωτερικό JavaScript, χρησιμοποιείται για τη φόρτωση αρχείων XML.
- Επιλογή του γονικού κόμβου του κόμβου
- Αυτό το παράδειγμα χρησιμοποιεί την ιδιότητα parentNode για να αποκτήσει τον γονικό κόμβο του κόμβου.
- Αποκτήστε τον πρώτο υποκείμενο κόμβο του κόμβου
- Αυτό το παράδειγμα χρησιμοποιεί τη μέθοδο firstChild() και μια προσαρμοσμένη συναρτηση για να αποκτήσει τον πρώτο υποκείμενο κόμβο ενός κόμβου.
Εύρεση κόμβων DOM
Εκτελείται η πρόσβαση σε κόμβους του δέντρου κόμβων μέσω των σχέσεων μεταξύ κόμβων, και συχνά ονομάζεται "定位节点 (navigating nodes)".
Στο XML DOM, οι σχέσεις των κόμβων ορίζονται ως ιδιότητες του κόμβου:
- parentNode
- childNodes
- firstChild
- lastChild
- nextSibling
- previousSibling
Η παρακάτω εικόνα δείχνει books.xml Μια τμήμα του δέντρου κόμβων και εξηγεί τις σχέσεις μεταξύ των κόμβων:

DOM - Γονικός κόμβος
Όλοι οι κόμβοι έχουν μόνο έναν γονικό κόμβο. Ο παρακάτω κώδικας τοποθετείται στον γονικό κόμβο του <book>:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book")[0]; document.write(x.parentNode.nodeName);
Παράδειγμα ερμηνείας:
- Με τη χρήση loadXMLDoc() Το "books.xmlείναι " κατεβάζεται στο xmlDoc
- Αποκτήστε τον πρώτο στοιχειώδη κόμβο <book>
- Εκτυπώστε το όνομα του γονικού κόμβου του "x"
Αποφυγή κενών κειμένων
Το Firefox και άλλοι μερικοί περιηγητές θεωρούν τα κενά και τις νέες γραμμές ως κείμενο κόμβους, ενώ το IE δεν το κάνει.
Αυτό προκαλεί ένα πρόβλημα όταν χρησιμοποιούμε τις παρακάτω ιδιότητες: firstChild, lastChild, nextSibling, previousSibling.
Για να αποφύγουμε την τοποθέτηση σε κενό κείμενο (χώροι και χαρακτήρες νέας γραμμής μεταξύ στοιχείων), χρησιμοποιούμε μια συναρτηση για να ελέγξουμε τον τύπο του κόμβου:
function get_nextSibling(n) { y=n.nextSibling; while (y.nodeType!=1) { y=y.nextSibling; } return y; }
Με τις παραπάνω συναρτήσεις, μπορούμε να χρησιμοποιήσουμε get_nextSibling(node) αντί για την ιδιότητα node.nextSibling.
Ανάλυση κώδικα:
Ο τύπος του στοιχειώδους κόμβου είναι 1. Αν ο同级 κόμβος δεν είναι ένας στοιχειώδης κόμβος, μετακινηθείτε στον επόμενο κόμβο μέχρι να βρείτε έναν στοιχειώδη κόμβο. Με αυτόν τον τρόπο, τόσο στο IE όσο και στο Firefox θα λάβετε τον ίδιο αποτέλεσμα.
Αποκτήστε τον πρώτο στοιχειώδη κόμβο
Η παρακάτω κώδικας δείχνει τον πρώτο στοιχειώδη κόμβο του πρώτου <book>:
<html> <head> <script type="text/javascript" src="loadxmldoc.js"> </script> <script type="text/javascript"> //ελέγξει αν ο πρώτος κόμβος είναι ένας κόμβος στοιχείου function get_firstChild(n) { y=n.firstChild; while (y.nodeType!=1) { y=y.nextSibling; } return y; } </script> </head> <body> <script type="text/javascript"> xmlDoc=loadXMLDoc("books.xml"); x=get_firstChild(xmlDoc.getElementsByTagName("book")[0]); document.write(x.nodeName); </script> </body> </html>
Εκτύπωση:
title
Παράδειγμα ερμηνείας:
- Με τη χρήση loadXMLDoc() Το "books.xml" Φορτώστε το xmlDoc
- Χρησιμοποιήστε τη συνάρτηση get_firstChild στο πρώτο <book> για να αποκτήσετε τον πρώτο υποκόμβο του στοιχείου κόμβου
- Εκτύπωση του ονόματος του πρώτου υποκόμβου (στοιχείο κόμβου)
Παράδειγμα
Η παρακάτω παράδειγμα χρησιμοποιεί παρόμοιες συνάρτησεις:
- Προηγούμενη σελίδα DOM περιηγητής
- Επόμενη σελίδα DOM λήψη κόμβων