XML DOM replaceChild() 方法

定义和用法

replaceChild() 方法用其他节点替换某个子节点。

如成功,该方法返回被替换的节点,如失败,则返回 null。

语法:

elementNode.replaceChild(new_node,old_node)
参数 描述
new_node 必需。规定新的节点。
old_node 必需。规定要替换的子节点。

实例

在所有的例子中,我们将使用 XML 文件 books.xml,以及 JavaScript 函数 loadXMLDoc()

下面的代码片段替换 "books.xml" 中第一个 <book> 元素的第一个 <title> 元素:

//check if first child node is an element node
function get_firstchild(n)
{
x=n.firstChild;
while (x.nodeType!=1)
  {
  x=x.nextSibling;
  }
return x;
}
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0];
//create a title element and a text node
newNode=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("Giada's Family Dinners");
//add the text node to the title node;
newNode.appendChild(newText);
//replace the last node with the new node
x.replaceChild(newNode,get_firstchild(x));
y=xmlDoc.getElementsByTagName("title");
for (i=0;i<y.length;i++)
{
document.write(y[i].childNodes[0].nodeValue);
document.write("<br />");
}

Αποτελέσματα:

Γελιά της οικογένειας της Giada
Harry Potter
XQuery Kick Start
Learning XML

Σημείωση:Ο Internet Explorer θα αγνοήσει τους κενό κόμβους που δημιουργούνται μεταξύ των κόμβων (π.χ. σύμβολο νέας γραμμής), ενώ το Mozilla δεν θα το κάνει αυτό. Επομένως, στο παραπάνω παράδειγμα, δημιουργήσαμε μια συνάρτηση για τη δημιουργία των σωστών υποστοιχείων.

Συμβουλή:Για περισσότερες πληροφορίες σχετικά με τις διαφορές μεταξύ των προγραμμάτων περιήγησης IE και Mozilla, επισκεφθείτε την ενότητα XML DOM του CodeW3C.com. Περιήγηση DOM του προγράμματος περιήγησης Αυτό το κεφάλαιο.