Phương thức replaceChild() của XML DOM
Định nghĩa và cách sử dụng
Phương thức replaceChild() thay thế một phần tử con bằng một phần tử khác.
Nếu thành công, phương thức này trả về phần tử bị thay thế, nếu thất bại, thì trả về null.
Cú pháp:
elementNode.replaceChild(new_node,old_node)
Tham số | Mô tả |
---|---|
new_node | Bắt buộc. Định nghĩa phần tử mới. |
old_node | Bắt buộc. Định nghĩa phần tử con cần thay thế. |
Mô hình
Trong tất cả các ví dụ, chúng ta sẽ sử dụng tệp XML books.xmlvà hàm JavaScript loadXMLDoc()。
Mã đoạn sau đây thay thế phần tử đầu tiên <book> đầu tiên trong tệp "books.xml":
//kiểm tra xem phần tử con đầu tiên là phần tử phần tử hay không
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];
//tạo phần tử tiêu đề và phần tử văn bản
newNode=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("Bàn ăn gia đình Giada");
//thêm phần tử văn bản vào phần tử tiêu đề
newNode.appendChild(newText);
//Thay thế nút cuối cùng bằng nút mới
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 />");
}
Kết quả:
Bữa ăn gia đình của Giada Harry Potter XQuery Kick Start Learning XML
Chú thích:Internet Explorer sẽ bỏ qua các nút văn bản trống giữa các nút (ví dụ: ký tự enter), trong khi Mozilla không làm như vậy. Do đó, trong ví dụ trên, chúng tôi đã tạo một hàm để tạo các phần tử con chính xác.
Lưu ý:Nếu bạn cần thêm thông tin về sự khác biệt giữa trình duyệt IE và Mozilla, hãy truy cập hướng dẫn XML DOM của CodeW3C.com. Trình duyệt DOM Phần này.