Πρότυπα και Μέθοδοι του XML DOM

属性和方法向 XML DOM 定义了编程接口。

Παράδειγμα

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

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

函数 loadXMLString(),位于外部 JavaScript 中,用于加载 XML 字符串。

加载并解析 XML 文件
加载并解析 XML 字符串

编程接口

DOM 将 XML 模拟为一系列节点接口。可以通过 JavaScript 或其他编程语言来访问节点。在本教程中,我们使用 JavaScript。

对 DOM 的编程接口是通过一套标准的属性和方法来定义的。

属性经常按照“某事物是什么”的方式来使用(例如节点名是 "book")。

ΜέθοδοιΧρησιμοποιούνται συχνά με τη μορφή "κατά چه τρόπον κάνουμε κάτι" (π.χ. διαγράφουμε το στοιχείο "book").

Ιδιότητες XML DOM

Μερικές από τις τυπικές ιδιότητες DOM:

  • x.nodeName - Το όνομα του x
  • x.nodeValue - Η τιμή του x
  • x.parentNode - Ο γονέας του x
  • x.childNodes - Οι υποκόμβοι του x
  • x.attributes - Οι ιδιότητες του x

Σημειώσεις:Στην παραπάνω λίστα, το x είναι ένα αντικείμενο κόμβου.

Μέθοδοι XML DOM

  • x.getElementsByTagName(name) - Απόκτηση όλων των στοιχείων με το καθορισμένο όνομα ετικέτας
  • x.appendChild(node) - Εισαγωγή του υποκόμβου στο x
  • x.removeChild(node) - Αφαίρεση του υποκόμβου από το x

Σημειώσεις:Στην παραπάνω λίστα, το x είναι ένα αντικείμενο κόμβου.

Παράδειγμα

JavaScript κώδικας για την απόκτηση κειμένου από το στοιχείο <title> του books.xml:

txt=xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue

Μετά την εκτέλεση αυτής της φράσης, η τιμή που αποθηκεύεται στο txt είναι "Harry Potter".

Επεξηγήσεις:

  • xmlDoc - Ο XML DOM που δημιουργείται από τον αναλυτή
  • getElementsByTagName("title")[0] - Ο πρώτος στοιχείο <title>
  • childNodes[0] - Ο πρώτος υποκόμβος του στοιχείου <title>
  • nodeValue - Η τιμή του κόμβου (το κείμενο του ιδίου)

Στο παραπάνω παράδειγμα, getElementsByTagName είναι η μέθοδος, ενώ childNodes και nodeValue είναι οι ιδιότητες.

Ανάλυση αρχείου XML - Παράδειγμα διαπερατότητας浏览器

Η παρακάτω κλάσμα κώδικα χρησιμοποιεί τη συνάρτηση loadXMLDoc books.xml Φόρτωση στο αναλυτή XML και εμφάνιση των δεδομένων του πρώτου book:

xmlDoc=loadXMLDoc("books.xml");
document.write(xmlDoc.getElementsByTagName("title"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("author"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("year"))
[0].childNodes[0].nodeValue);

Έξοδος:

Harry Potter
J K. Rowling
2005

TIY

Στο παραπάνω παράδειγμα, χρησιμοποιούμε childNodes[0] για κάθε κείμενο κόμβο, ακόμα και αν κάθε στοιχείο έχει μόνο έναν κείμενο κόμβο. Αυτό οφείλεται στο γεγονός ότι η μέθοδος getElementsByTagName() �ways επιστρέφει μια λίστα.

Ανάλυση αλφαριθμητικής αλυσίδας XML - Παράδειγμα διαπερατότητας浏览器

Η παρακάτω κλάσμα κώδικα φορτώνει και αναλύει μια αλφαριθμητική αλυσίδα XML:

Η παρακάτω κλάσμα κώδικα χρησιμοποιεί τη συνάρτηση loadXMLString books.xml Φόρτωση αναλυτή XML και εμφάνιση δεδομένων του πρώτου book:

text="<bookstore>"
text=text+"<book>";
text=text+"<title>Harry Potter</title>";
text=text+"<author>J K. Rowling</author>";
text=text+"<year>2005</year>";
text=text+"</book>";
text=text+"</bookstore>";
xmlDoc=loadXMLString(text);
document.write(xmlDoc.getElementsByTagName("title"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("author"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("year"))
[0].childNodes[0].nodeValue);

Έξοδος:

Harry Potter
J K. Rowling
2005

TIY