Διαγραφή κόμβου XML DOM

Η μέθοδος removeChild() αφαιρεί τον καθορισμένο κόμβο.

Η μέθοδος removeAttribute() αφαιρεί την καθορισμένη ιδιότητα.

Παράδειγμα

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

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

Αφαίρεση στοιχείου κόμβου
Σε αυτό το παράδειγμα χρησιμοποιείται η removeChild() για την αφαίρεση του πρώτου στοιχείου <book>.
Αφαίρεση του τρέχοντος στοιχείου κόμβου
Σε αυτό το παράδειγμα χρησιμοποιείται το parentNode και η removeChild() για την αφαίρεση του τρέχοντος στοιχείου <book>.
Διαγραφή κειμένου σημείου
Σε αυτό το παράδειγμα χρησιμοποιείται η removeChild() για την αφαίρεση του κόμβου text του πρώτου στοιχείου <title>.
Καθαρισμός του κειμένου του κόμβου text
Σε αυτό το παράδειγμα χρησιμοποιείται η ιδιότητα nodeValue() για την καθαίρεση του κειμένου του κόμβου text του πρώτου στοιχείου <title>.
Αφαίρεση ιδιοτήτων με βάση το όνομα
Σε αυτό το παράδειγμα χρησιμοποιείται η removeAttribute() για την αφαίρεση της ιδιότητας "category" από το πρώτο στοιχείο <book>.
Αφαίρεση ιδιοτήτων με βάση το αντικείμενο
Σε αυτό το παράδειγμα χρησιμοποιείται η removeAttributeNode() για την αφαίρεση όλων των ιδιοτήτων του στοιχείου <book>.

Αφαίρεση στοιχείου κόμβου

Η μέθοδος removeChild() αφαιρεί τον καθορισμένο κόμβο.

Όταν ένας κόμβος αφαιρεθεί, και όλοι οι υποκόμβοι του θα αφαιρεθούν.

Η παρακάτω κλάση κώδικα θα αφαιρέσει το πρώτο στοιχείο <book> από το φορτωμένο xml:

xmlDoc=loadXMLDoc("books.xml");
y=xmlDoc.getElementsByTagName("book")[0];
xmlDoc.documentElement.removeChild(y); 

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

  • Με τη χρήση loadXMLDoc() Το "books.xml" Βασίζεται στο xmlDoc
  • Ρυθμίστε τη μεταβλητή y ως το στοιχείο που θα διαγραφεί
  • Με τη χρήση της μεθόδου removeChild() απομακρύνετε το στοιχείο από τον γονικό του σημείο

TIY

Διαγραφή του εαυτού σας - Διαγραφή του τρέχοντος σημείου

Η μέθοδος removeChild() είναι η μοναδική μέθοδος που μπορεί να διαγράψει το καθορισμένο σημείο.

Όταν έχετε εντοπίσει το σημείο που θέλετε να διαγράψετε, μπορείτε να το διαγράψετε χρησιμοποιώντας την ιδιότητα parentNode και τη μέθοδο removeChild():

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

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

  • Με τη χρήση loadXMLDoc() Το "books.xml" Βασίζεται στο xmlDoc
  • Ρυθμίστε τη μεταβλητή y ως το στοιχείο που θα διαγραφεί
  • Με τη χρήση της ιδιότητας parentNode και της μεθόδου removeChild() απομακρύνετε το στοιχείο από το στοιχείο του γονικού του

TIY

Διαγραφή κειμένου σημείου

Η μέθοδος removeChild() μπορεί να χρησιμοποιηθεί για τη διαγραφή του κειμένου του σημείου:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0];
y=x.childNodes[0];
x.removeChild(y); 

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

  • Με τη χρήση loadXMLDoc() Το "books.xml" Βασίζεται στο xmlDoc
  • Ρυθμίστε τη μεταβλητή x ως το σημείο του πρώτου στοιχείου title
  • Ρυθμίστε τη μεταβλητή y ως το κείμενο που θα διαγραφεί
  • Με τη χρήση της μεθόδου removeChild() απομακρύνετε το σημείο από τον γονικό του σημείο

TIY

Λιγότερο συχνά, το removeChild() απομακρύνει το κείμενο από το σημείο. Μπορεί να χρησιμοποιηθεί η ιδιότητα nodeValue αντί αυτού. Δείτε το επόμενο κεφάλαιο.

Καθαρισμός κειμένου σημείου

Η ιδιότητα nodeValue μπορεί να χρησιμοποιηθεί για να αλλάξει ή να καθαρίσει την τιμή του κειμένου του σημείου:

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

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

  • Με τη χρήση loadXMLDoc() Το "books.xml" Βασίζεται στο xmlDoc
  • Ρυθμίστε τη μεταβλητή x ως τον κείμενο του πρώτου στοιχείου title
  • Χρησιμοποιήστε την ιδιότητα nodeValue για να καθαρίσετε τον κείμενο του κειμένου του σημείου

TIY

Καθοδηγείτε το κύκλο και αλλάζετε τον κείμενο του κάθε στοιχείου <title>: TIY

Διαγραφή σημείου ιδιότητας με βάση το όνομα

Η μέθοδος removeAttribute(name) χρησιμοποιείται για τη διαγραφή του σημείου ιδιότητας με βάση το όνομα.

Παράδειγμα: removeAttribute('category')

Η παρακάτω κωδική ενότητα διαγράφει την ιδιότητα "category" του πρώτου στοιχείου <book>:

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

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

  • Με τη χρήση loadXMLDoc() Το "books.xml" Βασίζεται στο xmlDoc
  • Χρησιμοποιήστε το getElementsByTagName() για να αποκτήσετε τα σημεία book
  • Αφαιρέστε το χαρακτηριστικό "category" από τον πρώτο κόμβο στοιχείου book

TIY

Περιηγηθείτε και αφαιρέστε όλα τα χαρακτηριστικά "category" από τα στοιχεία <book>: TIY.

Αφαίρεση χαρακτηριστικών με βάση το αντικείμενο

Το μέθοδο removeAttributeNode(node) χρησιμοποιείται με Node αντικείμενο ως παράμετρο για την αφαίρεση χαρακτηριστικών του κόμβου.

Παράδειγμα: removeAttributeNode(x)

Το παρακάτω κομμάτι κώδικα αφαιρεί όλα τα χαρακτηριστικά από τα στοιχεία <book>:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book");
for (i=0;i<x.length;i++)
{
while (x[i].attributes.length>0)
  {
  attnode=x[i].attributes[0];
  old_att=x[i].removeAttributeNode(attnode);
  }
}

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

  • Με τη χρήση loadXMLDoc() Το "books.xml" Βασίζεται στο xmlDoc
  • Χρησιμοποιήστε getElementsByTagName() για να πάρετε όλα τα στοιχεία book
  • Ελέγξτε αν κάθε στοιχείο book έχει χαρακτηριστικό
  • Αφαιρέστε το χαρακτηριστικό αν υπάρχει στο στοιχείο book

TIY