XML DOM-Knotenlöschen
- Vorherige Seite DOM-Nodes ändern
- Nächste Seite DOM-Nodes ersetzen
removeChild() 方法删除指定节点。
removeAttribute() 方法删除指定属性。
实例
下面的例子使用 XML 文件 books.xml。
函数 loadXMLDoc(),位于外部 JavaScript 中,用于加载 XML 文件。
- 删除元素节点
- 本例使用 removeChild() 来删除第一个 <book> 元素。
- 删除当前元素节点
- 本例使用 parentNode 和 removeChild() 来删除当前的 <book> 元素。
- Textknoten löschen
- 本例使用 removeChild() 来删除第一个 <title> 元素的文本节点。
- 清空文本节点的文本
- 本例使用 nodeValue() 属性来清空第一个 <title> 元素的文本节点。
- 根据名称删除属性
- 本例使用 removeAttribute() 从第一个 <book> 元素中删除 "category" 属性。
- 根据对象删除属性
- 本例使用 removeAttributeNode() 删除 <book> 元素中的所有属性。
删除元素节点
removeChild() 方法删除指定的节点。
当一个节点被删除时,其所有子节点也会被删除。
下面的代码片段将从载入的 xml 中删除第一个 <book> 元素:
xmlDoc=loadXMLDoc("books.xml"); y=xmlDoc.getElementsByTagName("book")[0]; xmlDoc.documentElement.removeChild(y);
Beispiel
- Durch die Nutzung loadXMLDoc() "books.xml"Lade xmlDoc"
- Setzen Sie die Variable y auf das zu löschende Elementknoten
- Durch Verwendung der Methode removeChild() können Elementknoten aus dem Elternknoten entfernt werden
Selbst löschen - Löschen des aktuellen Knotens
Die Methode removeChild() ist das einzige Verfahren, um einen bestimmten Knoten zu löschen.
Wenn Sie den zu löschenden Knoten bereits lokalisiert haben, können Sie ihn löschen, indem Sie das Attribut parentNode und die Methode removeChild() verwenden
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book")[0]; x.parentNode.removeChild(x);
Beispiel
- Durch die Nutzung loadXMLDoc() "books.xml"Lade xmlDoc"
- Setzen Sie die Variable y auf das zu löschende Elementknoten
- Durch Verwendung des Attributs parentNode und der Methode removeChild() kann dieses Elementknoten gelöscht werden
Textknoten löschen
Die Methode removeChild() kann verwendet werden, um Textknoten zu löschen:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title")[0]; y=x.childNodes[0]; x.removeChild(y);
Beispiel
- Durch die Nutzung loadXMLDoc() "books.xml"Lade xmlDoc"
- Setzen Sie die Variable x auf den Knoten des ersten title-Elements
- Setzen Sie die Variable y auf den zu löschenden Textknoten
- Durch Verwendung der Methode removeChild() können Knoten aus dem Elternknoten entfernt werden
Nicht oft verwendet: removeChild() zum Entfernen von Textknoten aus einem Knoten. Es kann das Attribut nodeValue verwendet werden, um es zu ersetzen. Siehe das nächste Kapitel.
Leeren des Textknotens
Das Attribut nodeValue kann verwendet werden, um den Wert des Textknotens zu ändern oder zu leeren:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title")[0].childNodes[0]; x.nodeValue="";
Beispiel
- Durch die Nutzung loadXMLDoc() "books.xml"Lade xmlDoc"
- Setzen Sie die Variable x auf den Textknoten des ersten title-Elements
- Verwenden Sie das Attribut nodeValue, um den Text des Textknotens zu leeren
Schleife und Änderung des Textknotens aller <title>-Elemente: TIY
Attribute-Nodes basierend auf dem Namen löschen
Die Methode removeAttribute(name) wird verwendet, um Attribute-Nodes basierend auf dem Namen zu löschen.
Beispiel: removeAttribute('category')
Der folgende Codeabschnitt löscht die "category"-Eigenschaft des ersten <book>-Elements:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book"); x[0].removeAttribute("category");
Beispiel
- Durch die Nutzung loadXMLDoc() "books.xml"Lade xmlDoc"
- Verwenden Sie getElementsByTagName() um den book-Knoten zu erhalten
- Entferne das "category"-Attribut aus dem ersten book-Elementknoten
Durchsuche und entferne alle "category"-Attribute der <book>-Elemente: TIY.
Lösche Attributknoten basierend auf dem Objekt
Die Methode removeAttributeNode(node) verwendet ein Node-Objekt als Parameter, um Attributknoten zu löschen.
Beispiel: removeAttributeNode(x)
Der folgende Codeabschnitt entfernt alle Attribute aller <book>-Elemente:
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); } }
Beispiel
- Durch die Nutzung loadXMLDoc() "books.xml"Lade xmlDoc"
- Verwende getElementsByTagName() um alle book-Knoten zu erhalten
- Überprüfe, ob jeder book-Element ein Attribut hat
- Entferne das Attribut, wenn es im book-Element existiert
- Vorherige Seite DOM-Nodes ändern
- Nächste Seite DOM-Nodes ersetzen