XML DOM slette knudepunkt

removeChild() 方法删除指定节点。

removeAttribute() 方法删除指定属性。

实例

下面的例子使用 XML 文件 books.xml

函数 loadXMLDoc(),位于外部 JavaScript 中,用于加载 XML 文件。

删除元素节点
本例使用 removeChild() 来删除第一个 <book> 元素。
删除当前元素节点
本例使用 parentNode 和 removeChild() 来删除当前的 <book> 元素。
Fjern tekstnode
本例使用 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); 

Eksempel forklaring:

  • Ved brug af loadXMLDoc() Brug "books.xml" Indlæs i xmlDoc"
  • Sæt variablen y til det elementnode, der skal fjernes
  • Brug removeChild() metoden til at fjerne et elementnode fra forældrenode

TIY

Fjern selv - fjern den aktuelle node

removeChild() metoden er den eneste metode, der kan fjerne en specifik node.

Når du har lokaliseret den node, der skal fjernes, kan du bruge parentNode-egenskaben og removeChild() metoden til at fjerne denne node:

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

Eksempel forklaring:

  • Ved brug af loadXMLDoc() Brug "books.xml" Indlæs i xmlDoc"
  • Sæt variablen y til det elementnode, der skal fjernes
  • Brug parentNode-egenskaben og removeChild() metoden til at fjerne dette elementnode

TIY

Fjern tekstnode

removeChild() metoden kan bruges til at fjerne tekstnoder:

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

Eksempel forklaring:

  • Ved brug af loadXMLDoc() Brug "books.xml" Indlæs i xmlDoc"
  • Sæt variablen x til den første title-elementnode
  • Sæt variablen y til den tekstnode, der skal fjernes
  • Brug removeChild() metoden til at fjerne en node fra forældrenode

TIY

Ikke så ofte brug removeChild() til at fjerne tekst fra en node. Du kan bruge nodeValue-egenskaben i stedet. Se næste afsnit.

Tøm tekstnode

nodeValue-egenskaben kan bruges til at ændre eller tømme værdien af en tekstnode:

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

Eksempel forklaring:

  • Ved brug af loadXMLDoc() Brug "books.xml" Indlæs i xmlDoc"
  • Sæt variablen x til tekstnoden for den første title-element
  • Brug nodeValue-egenskaben til at tømme tekstnoders tekst

TIY

Gennemløb og ændr alle <title>-elements tekstnoder: TIY

Slette egenskabsnoder baseret på navn

removeAttribute(name) metoden bruges til at slette egenskabsnoder baseret på navn.

Eksempel: removeAttribute('category')

Følgende kodeuddrag sletter "category"-egenskaben fra den første <book>-element

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

Eksempel forklaring:

  • Ved brug af loadXMLDoc() Brug "books.xml" Indlæs i xmlDoc"
  • Brug getElementsByTagName() til at få book-noder
  • Fjern "category"-egenskaben fra den første book-elementnode

TIY

Gennemgå og slet alle <book>-elementers "category"-egenskab: TIY.

Slet egenskabsnoden baseret på objekt

removeAttributeNode(node) metoden bruger et Node-objekt som parameter for at slette egenskabsnoden.

Eksempel: removeAttributeNode(x)

Følgende kodeudsnit sletter alle <book>-elementers egenskaber:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book");
for (i=0; i<x.length; i++)
{
mens (x[i].attributes.length>0)
  {
  attnode=x[i].attributes[0];
  old_att=x[i].removeAttributeNode(attnode);
  }
}

Eksempel forklaring:

  • Ved brug af loadXMLDoc() Brug "books.xml" Indlæs i xmlDoc"
  • Brug getElementsByTagName() til at få alle book-noder
  • Kontroller hver book-element for om det har en egenskab
  • Hvis der findes en egenskab i en book-element, skal denne egenskab slettes

TIY