XML DOM Remove Nodes
Metoda removeChild() odebere určený uzel.
Metoda removeAttribute() odebere zadaný atribut.
Zkuste si to sami - příklady
Příklady používají soubor XML books.xml .
Tento příklad používá removeChild() k odstranění prvního prvku <book>.
Tento příklad používá parentNode a removeChild() k odstranění aktuálního prvku <book>.
Tento příklad používá removeChild() k odstranění textového uzlu z prvního prvku <title>.
Tento příklad používá vlastnost nodeValue() k vymazání textového uzlu prvního prvku <title>.
Tento příklad používá removeAttribute() k odstranění atributu "category" z prvního prvku <book>.
Tento příklad používá removeAttributeNode() k odstranění všech atributů ze všech prvků <book>.
Odebrat uzel prvku
Metoda removeChild() odebere určený uzel.
Když je uzel odstraněn, jsou odstraněny také všechny jeho podřízené uzly.
Tento kód odstraní první prvek <book> z načteného xml:
Příklad
y = xmlDoc.getElementsByTagName("book")[0];
xmlDoc.documentElement.removeChild(y);
Vysvětlený příklad:
- Předpokládejme, že „ knihy.xml “ je načten do xmlDoc
- Nastavte proměnnou y jako uzel prvku, který chcete odstranit
- Odstraňte uzel prvku pomocí metody removeChild() z nadřazeného uzlu
Remove Myself - Odebrat aktuální uzel
Metoda removeChild() je jediný způsob, jak odstranit zadaný uzel.
Když jste přešli na uzel, který chcete odstranit, je možné tento uzel odstranit pomocí vlastnosti parentNode a metody removeChild():
Příklad
x = xmlDoc.getElementsByTagName("book")[0];
x.parentNode.removeChild(x);
Vysvětlený příklad:
- Předpokládejme, že „ knihy.xml “ je načten do xmlDoc
- Nastavte proměnnou y jako uzel prvku, který chcete odstranit
- Odstraňte uzel prvku pomocí vlastnosti parentNode a metody removeChild().
Odebrat textový uzel
Metodu removeChild() lze také použít k odstranění textového uzlu:
Příklad
x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
x.removeChild(y);
Vysvětlený příklad:
- Předpokládejme, že „ knihy.xml “ je načten do xmlDoc
- Nastavte proměnnou x jako první uzel prvku nadpisu
- Nastavte proměnnou y jako textový uzel, který chcete odstranit
- Odstraňte uzel prvku pomocí metody removeChild() z nadřazeného uzlu
Není příliš obvyklé používat removeChild() pouze k odstranění textu z uzlu. Místo toho lze použít vlastnost nodeValue. Viz další odstavec.
Vymažte textový uzel
Vlastnost nodeValue lze použít ke změně hodnoty textového uzlu:
Příklad
xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue = "";
Vysvětlený příklad:
- Předpokládejme, že „ knihy.xml “ je načten do xmlDoc
- Získejte první podřízený uzel prvního prvku title.
- Pomocí vlastnosti nodeValue vymažte text z textového uzlu
Odeberte uzel atributu podle názvu
Metoda removeAttribute( ) odebere uzel atributu podle jeho názvu.
Příklad: removeAttribute('category')
Tento kód odstraňuje atribut „category“ v prvním prvku <book>:
Příklad
x = xmlDoc.getElementsByTagName("book");
x[0].removeAttribute("category");
Vysvětlený příklad:
- Předpokládejme, že „ knihy.xml “ je načten do xmlDoc
- K získání uzlů knihy použijte getElementsByTagName().
- Odeberte atribut „kategorie“ z prvního uzlu prvku knihy
Projděte a odstraňte atribut „category“ ze všech prvků <book>:
Odebrat uzly atributů podle objektu
Metoda removeAttributeNode( ) odstraní uzel atributu pomocí objektu node jako parametru.
Příklad: removeAttributeNode(x)
Tento kód odstraní všechny atributy všech prvků <book>:
Příklad
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);
}
}
Vysvětlený příklad:
- Předpokládejme, že „ knihy.xml “ je načten do xmlDoc
- Použijte getElementsByTagName() k získání všech uzlů knihy
- U každého prvku knihy zkontrolujte, zda existují nějaké atributy
- Pokud prvek knihy obsahuje atributy, odeberte atribut