Phương thức XML DOM replaceChild()
Định nghĩa và sử dụng
Phương thức replaceChild() có thể thay thế một nút con bằng một nút con khác.
Nếu thay thế thành công, phương pháp này sẽ trả về nút đã thay thế, nếu thay thế không thành công, sẽ trả về NULL.
Cú pháp:
nodeObject.replaceChild(new_node,old_node)
Tham số | Mô tả |
---|---|
new_node | Bắt buộc. Định nghĩa nút mới. |
old_node | Bắt buộc. Định nghĩa nút cần thay thế. |
Lưu ý và ghi chú
Ghi 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ự xuống dòng), trong khi Mozilla không làm điều đó. Do đó, trong ví dụ sau, chúng ta sẽ sử dụng một hàm để kiểm tra loại nút của nút con đầu tiên.
Loại nút của phần tử nút là 1, vì vậy nếu nút con đầu tiên không phải là nút phần tử, nó sẽ di chuyển đến nút tiếp theo và tiếp tục kiểm tra xem nút này có phải là nút phần tử hay không. Quá trình này sẽ tiếp tục cho đến khi tìm thấy nút con phần tử đầu tiên. Bằng cách này, chúng ta có thể nhận được phương pháp chính xác trên Internet Explorer và Mozilla.
Lưu ý:Nếu bạn cần thêm thông tin về sự khác biệt giữa XML DOM giữa IE và Mozilla, hãy truy cập trang web của chúng ta Trình duyệt DOM chương.
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 có thể thay thế phần tử <title> đầu tiên trong phần tử <book<:
//kiểm tra xem nút con đầu tiên là một nút phần tử hay không
function get_firstchild(n)
{
var x=n.firstChild;
while (x.nodeType!=1)
{
x=x.nextSibling;
}
return x;
}
xmlDoc=loadXMLDoc("books.xml");
//tạo một phần tử tiêu đề và một nút văn bản
var newNode=xmlDoc.createElement("title");
var newText=xmlDoc.createTextNode("Bữa tối gia đình của Giada");
//thêm nút văn bản vào nút tiêu đề,
newNode.appendChild(newText);
//thay thế nút con đầu tiên bằng nút con mới
var x=xmlDoc.getElementsByTagName("book")[0];
x.replaceChild(newNode,get_firstchild(x));
//xuất ra tất cả các tiêu đề
var y=xmlDoc.getElementsByTagName("title");
for (i=0;i<y.length;i++)
{
document.write(y[i].childNodes[0].nodeValue);
document.write("<br />");
}
Kết quả xuất ra:
Bữa tối gia đình của Giada Harry Potter XQuery Kick Start Học XML