XML DOM-ta bort nod
- Föregående sida DOM ändra nod
- Nästa sida DOM ersätt nod
removeChild() metoden tar bort den angivna noden.
removeAttribute() metoden tar bort den angivna egenskapen.
Exempel
Följande exempel använder XML-filer books.xml.
Funktion loadXMLDoc()Ligger utanför den externa JavaScripten och används för att ladda XML-filer.
- Ta bort elementnoden
- Detta exempel använder removeChild() för att ta bort den första <book>-elementet.
- Ta bort den aktuella elementnoden
- Detta exempel använder parentNode och removeChild() för att ta bort det aktuella <book>-elementet.
- Ta bort textnod
- Detta exempel använder removeChild() för att ta bort textnoden för den första <title>-elementet.
- Töm textnodens text
- Detta exempel använder nodeValue()-egenskapen för att tömma textnoden för den första <title>-elementet.
- Ta bort egenskap enligt namn
- Detta exempel använder removeAttribute() för att ta bort "category"-egenskapen från den första <book>-elementet.
- Ta bort egenskap enligt objekt
- Detta exempel använder removeAttributeNode() för att ta bort alla attribut från <book>-elementet.
Ta bort elementnoden
removeChild() metoden tar bort den angivna noden.
När en nod tas bort tas också alla dess undernoder bort.
Följande kodsegment kommer att ta bort den första <book>-elementet från den inladdade xml:n:
xmlDoc=loadXMLDoc("books.xml"); y=xmlDoc.getElementsByTagName("book")[0]; xmlDoc.documentElement.removeChild(y);
Exempel förklaring:
- Genom att använda loadXMLDoc() Lägg till "books.xml"Ladda xmlDoc"
- Sätt variabeln y till den elementnod som ska tas bort
- Genom att använda removeChild()-metoden ta bort elementnod från föräldernod
Ta bort själv - ta bort den aktuella noden
removeChild()-metoden är det enda sättet att ta bort en specifik nod.
När du har lokaliserat den nod som ska tas bort, kan du använda parentNode-egenskapen och removeChild()-metoden för att ta bort denna nod:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book")[0]; x.parentNode.removeChild(x);
Exempel förklaring:
- Genom att använda loadXMLDoc() Lägg till "books.xml"Ladda xmlDoc"
- Sätt variabeln y till den elementnod som ska tas bort
- Genom att använda parentNode-egenskapen och removeChild()-metoden ta bort denna elementnod
Ta bort textnod
removeChild()-metoden kan användas för att ta bort textnod
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title")[0]; y=x.childNodes[0]; x.removeChild(y);
Exempel förklaring:
- Genom att använda loadXMLDoc() Lägg till "books.xml"Ladda xmlDoc"
- Sätt variabeln x till noden för det första title-elementet
- Sätt variabeln y till den textnod som ska tas bort
- Genom att använda removeChild()-metoden ta bort nod från föräldernod
Mindre vanligt att använda removeChild() för att ta bort text från en nod. Det kan ersättas med nodeValue-egenskapen. Se nästa avsnitt.
Töm textnod
nodeValue-egenskapen kan användas för att ändra eller tömma textnodens värde:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title")[0].childNodes[0]; x.nodeValue="";
Exempel förklaring:
- Genom att använda loadXMLDoc() Lägg till "books.xml"Ladda xmlDoc"
- Sätt variabeln x till textnoden för den första title-elementet
- Använd nodeValue-egenskapen för att tömma textnodens text
Upprepa och ändra textnoderna för alla <title>-element: TIY
Ta bort egenskapsnod baserat på namn
removeAttribute(name)-metoden används för att ta bort egenskapsnoden baserat på namn.
Exempel: removeAttribute('category')
Följande kodsnutt tar bort "category"-egenskapen från den första <book>-elementet:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book"); x[0].removeAttribute("category");
Exempel förklaring:
- Genom att använda loadXMLDoc() Lägg till "books.xml"Ladda xmlDoc"
- Använd getElementsByTagName() för att hämta book-noden
- Ta bort "category"-egenskapen från den första book-elementnoden
Genomgå och ta bort alla "category"-egenskaper från alla <book>-element: TIY.
Ta bort egenskapsnod enligt objekt
removeAttributeNode(node) metoden använder Node-objekt som parameter för att ta bort egenskapsnoden.
Exempel: removeAttributeNode(x)
Följande kodsnutt tar bort alla egenskaper från alla <book>-element:
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); } }
Exempel förklaring:
- Genom att använda loadXMLDoc() Lägg till "books.xml"Ladda xmlDoc"
- Använd getElementsByTagName() för att få alla book-noder
- Kontrollera om varje book-element har egenskaper
- Om det finns egenskaper i en viss book-element, ta bort dessa egenskaper
- Föregående sida DOM ändra nod
- Nästa sida DOM ersätt nod