XML DOM Node List

节点列表由 getElementsByTagName() 方法和 childNodes 属性返回。

实例

下面的例子使用 XML 文件 books.xml

函数 loadXMLDoc(),位于外部 JavaScript 中,用于加载 XML 文件。

从第一个 <title> 元素获取文本
本例使用 getElementsByTagName() 方法从 "books.xml" 中的第一个 <title> 元素获取文本。
通过使用 length 属性来循环节点
本例使用节点列表和 length 属性来循环 "books.xml" 中的所有 <title> 元素。
获取元素的属性
本例使用属性列表从 "books.xml" 中的第一个 <title> 元素获取属性。

DOM Node List

当使用诸如 childNodes 或 getElementsByTagName() 属性或方法时,会返回 NodeList 对象。

NodeList 对象表示节点的列表,以 XML 中的相同顺序。

使用从 0 开始的下标来访问节点列表中的节点。

Η παρακάτω εικόνα αντιπροσωπεύει το "books.xmlΜια λίστα κόμβων των στοιχείων <title>:

DOM κλάδα σημειώσεων

Η παρακάτω κωδική ενότητα χρησιμοποιείται με τον " loadXMLDoc() Φόρτωση του "books.xml" στο xmlDoc και επιστροφή του:books.xml" Μια λίστα κόμβων του στοιχείου title:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title");

Μετά την εκτέλεση της παραπάνω πρότασης, x γίνεται αντικείμενο NodeList.

Η παρακάτω κωδική μοναδία επιστρέφει το κείμενο από το πρώτο στοιχείο <title> της λίστας κόμβων x:

txt=x[0].childNodes[0].nodeValue;

Μετά την εκτέλεση της παραπάνω πρότασης, txt = "Everyday Italian".

TIY

Μήκος Λίστας Κόμβων

Το αντικείμενο NodeList διατηρεί την αυτοενημέρωσή του. Αν αφαιρεθεί ή προσστεθεί στοιχείο, η λίστα ενημερώνεται αυτόματα.

Η ιδιότητα length του NodeList είναι ο αριθμός των κόμβων στη λίστα.

Η παρακάτω κωδική ενότητα χρησιμοποιείται με τον " loadXMLDoc() Άντρες τον "books.xml" Φόρτωση xmlDoc, και επιστροφή του αριθμού των στοιχείων <title> στο "books.xml":

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('title').length;

Μετά την εκτέλεση της παραπάνω πρότασης, x = 4.

Η διάρκεια της λίστας των κόμβων μπορεί να χρησιμοποιηθεί για τον κύκλο όλων των στοιχείων της λίστας.

Η παρακάτω κωδική μοναδία χρησιμοποιεί την ιδιότητα length για να περιηγηθεί στη λίστα των στοιχείων <title>:

xmlDoc=loadXMLDoc("books.xml");
//Η μεταβλητή x θα κρατήσει μια λίστα κόμβων
x=xmlDoc.getElementsByTagName('title');
για (i=0; i<x.length; i++)
{
document.write(x[i].childNodes[0].nodeValue);
document.write("<br />");
}

Εκτύπωση:

Harry Potter
Everyday Italian
XQuery Kick Start
Learning XML

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

  • Με τη χρήση loadXMLDoc() Άντρες τον "books.xml" Φόρτωση xmlDoc
  • Ορισμός της μεταβλητής x για την αποθήκευση της λίστας των κόμβων όλων των στοιχείων title.
  • Απόδοση τιμών κειμένων από όλους τους κόμβους <title>.

TIY

DOM Attribute List (Named Node Map)

Η ιδιότητα attributes του κόμβου στοιχείου επιστρέφει τη λίστα των κόμβων ιδιοτήτων.

Αυτό ονομάζεται Χάρτης Ονομασμένων Νόδων, παρόμοιος με τη λίστα των κόμβων εκτός από μερικές διαφορές στα μέθοδους και τις ιδιότητες.

Η λίστα ιδιοτήτων διατηρεί την αυτοενημέρωσή της. Αν αφαιρεθεί ή προσστεθεί ιδιότητα, η λίστα αυτόματα ενημερώνεται.

Η παρακάτω κωδική ενότητα χρησιμοποιείται με τον " loadXMLDoc() Προσθέστε τον "books.xml" στον xmlDoc και από το "books.xmlΤο πρώτο στοιχείο <book> εντός "

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('book')[0].attributes;

Μετά την εκτέλεση του παραπάνω κώδικα, x.length ισούται με τον αριθμό των ιδιοτήτων, μπορείτε να χρησιμοποιήσετε x.getNamedItem() για να επιστρέψετε το κόμβο ιδιοτήτων.

Η παρακάτω κωδική ενότητα εκτυπώνει την τιμή της ιδιότητας "category" ενός book και τον αριθμό των ιδιοτήτων του:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0].attributes;
document.write(x.getNamedItem("category").nodeValue);
document.write("<br />" + x.length);

Εκτύπωση:

children
1

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

  • Με τη χρήση loadXMLDoc() Άντρες τον "books.xml" Λήψη xmlDoc
  • Άντρες τον πίνακα των ιδιοτήτων του πρώτου στοιχείου <book>
  • Εκτύπωση της τιμής της ιδιότητας "category"
  • Εκτύπωση της διάστασης της λίστας ιδιοτήτων

TIY