Pagtanggal ng Node ng XML DOM

Ang removeChild() na paraan ay inaalis ang tinukoy na node.

Ang removeAttribute() na paraan ay inaalis ang tinukoy na attribute.

Sample

Ang sumusunod na halimbawa ay gumagamit ng file na XML books.xml.

Function loadXMLDoc(),na matatagpuan sa labas na JavaScript, na ginagamit para sa paglaladlad ng file na XML.

Aalisin ang elemento na node
Ang halimbawa na ito ay gumagamit ng removeChild() upang aalisin ang unang <book> elemento.
Aalisin ang kasalukuyang elemento na node
Ang halimbawa na ito ay gumagamit ng parentNode at removeChild() upang aalisin ang kasalukuyang <book> elemento.
Alisin ang text node
Ang halimbawa na ito ay gumagamit ng removeChild() upang aalisin ang text node ng unang <title> elemento.
Alisin ang text ng text node
Ang halimbawa na ito ay gumagamit ng nodeValue() na attribute upang alisin ang text node ng unang <title> elemento.
Aalisin ang attribute ayon sa pangalan
Ang halimbawa na ito ay gumagamit ng removeAttribute() upang aalisin ang "category" attribute mula sa unang <book> elemento.
Aalisin ang attribute ayon sa object
Ang halimbawa na ito ay gumagamit ng removeAttributeNode() upang aalisin ang lahat ng mga attribute ng <book> elemento.

Aalisin ang elemento na node

Ang removeChild() na paraan ay inaalis ang tinukoy na node.

Kapag inaalis ang isang node, lahat ng kanyang mga anak na node ay inaalis din.

Ang mga sumusunod na kodong fragmento ay maglilipat ng unang <book> elemento mula sa inilagay na xml:

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

Halimbawa na ipinaliwanag:

  • Gamit ang loadXMLDoc() Ang "books.xml" I-ladag sa xmlDoc
  • I-set ang variable y bilang ang element node na dapat alisin
  • Sa pamamagitan ng paggamit ng removeChild() method upang alisin ang element node mula sa magulang na node

TIY

Alisin ang sarili - alisin ang kasalukuyang node

Ang removeChild() method ang tanging paraan para alisin ang tinukoy na node.

Kapag na-locate na ninyo ang nais alisin na node, maaari ninyong alisin ito sa pamamagitan ng paggamit ng parentNode attribute at removeChild() method:

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

Halimbawa na ipinaliwanag:

  • Gamit ang loadXMLDoc() Ang "books.xml" I-ladag sa xmlDoc
  • I-set ang variable y bilang ang element node na dapat alisin
  • Sa pamamagitan ng paggamit ng parentNode attribute at removeChild() method upang alisin ang element node na ito

TIY

Alisin ang text node

Ang removeChild() method ay maaaring gamitin upang alisin ang text node:

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

Halimbawa na ipinaliwanag:

  • Gamit ang loadXMLDoc() Ang "books.xml" I-ladag sa xmlDoc
  • I-set ang variable x bilang ang unang title element node
  • I-set ang variable y bilang ang text node na dapat alisin
  • Sa pamamagitan ng paggamit ng removeChild() method upang alisin ang node mula sa magulang na node

TIY

Hindi gaanong ginagamit ang removeChild() upang alisin ang text mula sa node. Maaaring gamitin ang nodeValue attribute sa halip. Tingnan ang sumusunod na pangyayari.

I-clear ang text node

Ang nodeValue attribute ay maaaring gamitin upang baguhin o i-clear ang value ng text node:

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

Halimbawa na ipinaliwanag:

  • Gamit ang loadXMLDoc() Ang "books.xml" I-ladag sa xmlDoc
  • I-set ang variable x bilang ang text node ng unang title element
  • Ginagamit ang nodeValue attribute upang i-clear ang text node ng text

TIY

I循环 at i-change ang text node ng lahat ng <title> elements: TIY

Alisin ang attribute node ayon sa pangalan

Ang removeAttribute(name) method ay ginagamit upang alisin ang attribute node ayon sa pangalan.

Halimbawa: removeAttribute('category')

Ang mga sumusunod na code snippet ay nag-aalis ng "category" attribute sa unang <book> element:

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

Halimbawa na ipinaliwanag:

  • Gamit ang loadXMLDoc() Ang "books.xml" I-ladag sa xmlDoc
  • Ginagamit ang getElementsByTagName() upang kunin ang mga node na may class 'book'
  • Alisin ang "category" na attribute mula sa unang book na elemento node

TIY

Suriin at alisin ang lahat ng "category" na attribute ng lahat ng <book> na elemento: TIY.

Alisin ang attribute na node ayon sa obheto

Ang removeAttributeNode(node) na pamamaraan ay ginagamit ang Node obheto bilang parametro upang alisin ang attribute na node.

Halimbawa: removeAttributeNode(x)

Ang sumusunod na kodigo na pahina ay inaalis ang lahat ng attribute ng lahat ng <book> na elemento:

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);
  }
}

Halimbawa na ipinaliwanag:

  • Gamit ang loadXMLDoc() Ang "books.xml" I-ladag sa xmlDoc
  • Gamit ang getElementsByTagName() upang makuha ang lahat ng book na elemento
  • Suriin kung mayroon bang attribute ang bawat book elemento
  • Kung mayroong attribute sa anumang book elemento, alisin ang attribute na iyon

TIY