Các nút Xóa DOM XML
Phương thức removeChild () loại bỏ một nút được chỉ định.
Phương thức removeAttribute () loại bỏ một thuộc tính đã chỉ định.
Hãy tự mình thử - Ví dụ
Các ví dụ sử dụng tệp XML books.xml .
Ví dụ này sử dụng removeChild () để xóa phần tử <book> đầu tiên.
Ví dụ này sử dụng parentNode và removeChild () để xóa phần tử <book> hiện tại.
Ví dụ này sử dụng removeChild () để xóa nút văn bản khỏi phần tử <title> đầu tiên.
Ví dụ này sử dụng thuộc tính nodeValue () để xóa nút văn bản của phần tử <title> đầu tiên.
Ví dụ này sử dụng removeAttribute () để xóa thuộc tính "category" khỏi phần tử <book> đầu tiên.
Ví dụ này sử dụng removeAttributeNode () để xóa tất cả các thuộc tính khỏi tất cả các phần tử <book>.
Loại bỏ một nút yếu tố
Phương thức removeChild () loại bỏ một nút được chỉ định.
Khi một nút bị loại bỏ, tất cả các nút con của nó cũng bị loại bỏ.
Mã này sẽ xóa phần tử <book> đầu tiên khỏi xml đã tải:
Thí dụ
y = xmlDoc.getElementsByTagName("book")[0];
xmlDoc.documentElement.removeChild(y);
Ví dụ được giải thích:
- Giả sử " books.xml " được tải vào xmlDoc
- Đặt biến y làm nút phần tử để loại bỏ
- Xóa nút phần tử bằng cách sử dụng phương thức removeChild () từ nút cha
Xóa bản thân - Xóa nút hiện tại
Phương thức removeChild () là cách duy nhất để loại bỏ một nút được chỉ định.
Khi bạn đã điều hướng đến nút bạn muốn xóa, bạn có thể xóa nút đó bằng thuộc tính parentNode và phương thức removeChild ():
Thí dụ
x = xmlDoc.getElementsByTagName("book")[0];
x.parentNode.removeChild(x);
Ví dụ được giải thích:
- Giả sử " books.xml " được tải vào xmlDoc
- Đặt biến y làm nút phần tử để loại bỏ
- Loại bỏ nút phần tử bằng cách sử dụng thuộc tính parentNode và phương thức removeChild ()
Loại bỏ một nút văn bản
Phương thức removeChild () cũng có thể được sử dụng để xóa một nút văn bản:
Thí dụ
x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
x.removeChild(y);
Ví dụ được giải thích:
- Giả sử " books.xml " được tải vào xmlDoc
- Đặt biến x là nút phần tử tiêu đề đầu tiên
- Đặt biến y thành nút văn bản để loại bỏ
- Xóa nút phần tử bằng cách sử dụng phương thức removeChild () từ nút cha
Việc sử dụng removeChild () chỉ để xóa văn bản khỏi một nút không phổ biến lắm. Thuộc tính nodeValue có thể được sử dụng thay thế. Xem đoạn tiếp theo.
Xóa nút văn bản
Thuộc tính nodeValue có thể được sử dụng để thay đổi giá trị của một nút văn bản:
Thí dụ
xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue = "";
Ví dụ được giải thích:
- Giả sử " books.xml " được tải vào xmlDoc
- Lấy nút con đầu tiên của phần tử tiêu đề đầu tiên.
- Sử dụng thuộc tính nodeValue để xóa văn bản khỏi nút văn bản
Xóa một nút thuộc tính theo tên
Phương thức removeAttribute ( ) loại bỏ một nút thuộc tính theo tên của nó.
Ví dụ: removeAttribute ('category')
Mã này xóa thuộc tính "category" trong phần tử <book> đầu tiên:
Thí dụ
x = xmlDoc.getElementsByTagName("book");
x[0].removeAttribute("category");
Ví dụ được giải thích:
- Giả sử " books.xml " được tải vào xmlDoc
- Sử dụng getElementsByTagName () để nhận các nút sách
- Loại bỏ thuộc tính "thể loại" dạng nút phần tử sách đầu tiên
Lặp lại và xóa thuộc tính "category" của tất cả các phần tử <book>:
Loại bỏ các nút thuộc tính theo đối tượng
Phương thức removeAttributeNode ( ) loại bỏ một nút thuộc tính, sử dụng đối tượng nút làm tham số.
Ví dụ: removeAttributeNode (x)
Mã này xóa tất cả các thuộc tính của tất cả các phần tử <book>:
Thí dụ
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);
}
}
Ví dụ được giải thích:
- Giả sử " books.xml " được tải vào xmlDoc
- Sử dụng getElementsByTagName () để nhận tất cả các nút sách
- Đối với mỗi phần tử sách, hãy kiểm tra xem có bất kỳ thuộc tính nào không
- Mặc dù có các thuộc tính trong phần tử sách, hãy xóa thuộc tính