Προσθήκη Κομβών XML DOM

Παράδειγμα

Το παρακάτω παράδειγμα χρησιμοποιεί αρχείο XML books.xml.

Συνάρτηση loadXMLDoc()Εντοπισμένο στο εξωτερικό JavaScript, χρησιμοποιείται για τη φόρτωση αρχείων XML.

Προσθήκη κόμβου μετά τον τελευταίο υποπλήρωμα
Αυτό το παράδειγμα χρησιμοποιεί τη μέθοδο appendChild() για την προσθήκη υποπλήρωματος σε υπάρχον κόμβο.
Προσθήκη κόμβου πριν από μια συγκεκριμένη υπογωνία
Αυτό το παράδειγμα χρησιμοποιεί τη μέθοδο insertBefore() για την εισαγωγή κόμβου πριν από μια συγκεκριμένη υπογωνία.
Προσθήκη νέας ιδιότητας
Αυτό το παράδειγμα χρησιμοποιεί τη μέθοδο setAttribute() για την προσθήκη νέας ιδιότητας.
Προσθήκη δεδομένων σε κόμβο κειμένου
Αυτό το παράδειγμα χρησιμοποιεί τη μέθοδο insertData() για την εισαγωγή δεδομένων σε ένα υπάρχον κόμβο κειμένου.

Προσθήκη κόμβου - appendChild()

Η μέθοδος appendChild() προσθέτει υποπλήρωμα σε υπάρχον κόμβο.

Η νέα γωνία θα προστεθεί (προσθέτειται) μετά οποιοδήποτε υπάρχον υποπλήρωμα.

Σημείωση:Αν η θέση του κόμβου είναι σημαντική, χρησιμοποιήστε τη μέθοδο insertBefore().

Το παρακάτω κείμενο κώδικα δημιουργεί ένα στοιχείο (<edition>) και το προσθέτει μετά τον τελευταίο υποπλήρωμα του πρώτου στοιχείου <book>.

xmlDoc=loadXMLDoc("books.xml");
newel=xmlDoc.createElement("edition");
x=xmlDoc.getElementsByTagName("book")[0];
x.appendChild(newel);

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

  1. Με τη χρήση loadXMLDoc() Προσθέστε το "books.xmlΠροσθέστε το xmlDoc
  2. Δημιουργία νέου κόμβου <edition>.
  3. Προσθέστε αυτόν τον κόμβο στο πρώτο στοιχείο <book>.

TIY

Αναπαράσταση και προσθήκη ενός στοιχείου σε όλα τα στοιχεία <book>:TIY

Εισαγωγή κόμβου - insertBefore()

Η μέθοδος insertBefore() χρησιμοποιείται για την εισαγωγή κόμβων πριν από μια συγκεκριμένη υπογωνία.

Αυτή η μέθοδος είναι πολύ χρήσιμη όταν η θέση του προσθέτου είναι σημαντική.

xmlDoc=loadXMLDoc("books.xml");
newNode=xmlDoc.createElement("book");
x=xmlDoc.documentElement;
y=xmlDoc.getElementsByTagName("book")[3];
x.insertBefore(newNode,y);

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

  1. Με τη χρήση loadXMLDoc() Προσθέστε το "books.xmlΠροσθέστε το xmlDoc
  2. Δημιουργία νέου κόμβου στοιχείου <book>.
  3. Προσθέστε αυτόν τον κόμβο πριν από τον τελευταίο κόμβο του <book>.

TIY

Αν ο δεύτερος παράγοντας του insertBefore() είναι null, η νέα γωνία θα προστεθεί μετά τον τελευταίο υπάρχοντα υποπλήρωμα.

x.insertBefore(newNode,null) και x.appendChild(newNode) μπορούν να προσθέσουν έναν νέο υποπλήρωμα στο x.

Προσθήκη νέας ιδιότητας

Η μεθόδος addAtribute() δεν υπάρχει.

Αν η ιδιότητα δεν υπάρχει, η μέθοδος setAttribute() μπορεί να δημιουργήσει μια νέα ιδιότητα:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('book');
x[0].setAttribute("edition","first");

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

  1. Με τη χρήση loadXMLDoc() Προσθέστε το "books.xmlΠροσθέστε το xmlDoc
  2. Θέστε την τιμή του attributes του πρώτου στοιχείου <book> σε "first"

TIY

Σημείωση:Αν η ιδιότητα υπάρχει ήδη, η μέθοδος setAttribute() θα καλύψει την υπάρχουσα τιμή.

Προσθήκη κειμένου στο κόμβο κειμένου - insertData()

Η μέθοδος insertData() εισάγει δεδομένα σε υπάρχοντα κόμβους κειμένου.

Η μέθοδος insertData() έχει δύο παραμέτρους:

  • offset - το σημείο όπου θα ξεκινήσει η εισαγωγή χαρακτήρων (αρχικά 0)
  • string - το κείμενο που θα εισαχθεί

Το παρακάτω κομμάτι κώδικα θα προσθέσει το "Easy" στον πρώτο κόμβο κειμένου του πρώτου στοιχείου <title> του φορτωμένου XML:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.insertData(0,"Hello ");

TIY