XML DOM-ta bort 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

TIY

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

TIY

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

TIY

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

TIY

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

TIY

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

TIY