Xóa kết điểm XML DOM
- Trang trước Thay đổi nút DOM
- Trang tiếp theo Thay thế nút DOM
Phương thức removeChild() xóa bỏ nút được chỉ định.
Phương thức removeAttribute() xóa bỏ thuộc tính được chỉ định.
Thực thể
Ví dụ sau sử dụng tệp XML books.xml.
Chức năng loadXMLDoc()nằm ở JavaScript bên ngoài, được sử dụng để tải tệp XML.
- Xóa bỏ phần tử nút
- Ví dụ này sử dụng phương thức removeChild() để xóa bỏ phần tử đầu tiên <book>.
- Xóa bỏ phần tử nút hiện tại
- Ví dụ này sử dụng parentNode và phương thức removeChild() để xóa bỏ phần tử <book> hiện tại.
- Xóa phần tử văn bản
- Ví dụ này sử dụng phương thức removeChild() để xóa bỏ nút văn bản của phần tử đầu tiên <title>.
- Xóa bỏ văn bản của nút văn bản
- Ví dụ này sử dụng thuộc tính nodeValue() để xóa bỏ nút văn bản của phần tử đầu tiên <title>.
- Xóa bỏ thuộc tính dựa trên tên
- Ví dụ này sử dụng phương thức removeAttribute() để xóa bỏ thuộc tính "category" từ phần tử đầu tiên <book>.
- Xóa bỏ thuộc tính dựa trên đối tượng
- Ví dụ này sử dụng phương thức removeAttributeNode() để xóa bỏ tất cả các thuộc tính của phần tử <book>.
Xóa bỏ phần tử nút
Phương thức removeChild() xóa bỏ nút được chỉ định.
Khi một nút được xóa bỏ, tất cả các nút con của nó cũng sẽ bị xóa bỏ.
Mã đoạn sau sẽ xóa bỏ phần tử đầu tiên <book> từ XML được tải vào:
xmlDoc=loadXMLDoc("books.xml"); y=xmlDoc.getElementsByTagName("book")[0]; xmlDoc.documentElement.removeChild(y);
Giải thích ví dụ:
- Bằng cách sử dụng loadXMLDoc() Bắt đầu với "books.xml"Ch载入docxml中"
- Đặt biến y thành phần tử cần xóa
- Sử dụng phương thức removeChild() để xóa phần tử từ phần tử cha
Xóa chính mình - xóa phần tử hiện tại
Phương thức removeChild() là phương thức duy nhất có thể xóa phần tử cụ thể.
Khi bạn đã định vị phần tử cần xóa, bạn có thể xóa phần tử này bằng cách sử dụng thuộc tính parentNode và phương thức removeChild():
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book")[0]; x.parentNode.removeChild(x);
Giải thích ví dụ:
- Bằng cách sử dụng loadXMLDoc() Bắt đầu với "books.xml"Ch载入docxml中"
- Đặt biến y thành phần tử cần xóa
- Sử dụng thuộc tính parentNode và phương thức removeChild() để xóa phần tử này
Xóa phần tử văn bản
Phương thức removeChild() có thể được sử dụng để xóa phần tử văn bản:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title")[0]; y=x.childNodes[0]; x.removeChild(y);
Giải thích ví dụ:
- Bằng cách sử dụng loadXMLDoc() Bắt đầu với "books.xml"Ch载入docxml中"
- Đặt biến x thành phần tử đầu tiên của title
- Đặt biến y thành phần tử văn bản cần xóa
- Sử dụng phương thức removeChild() để xóa phần tử từ phần tử cha
Không常用 removeChild() để xóa văn bản từ phần tử. Bạn có thể thay thế bằng thuộc tính nodeValue. Xem đoạn tiếp theo.
Xóa phần tử văn bản
Thuộc tính nodeValue có thể được sử dụng để thay đổi hoặc xóa giá trị của phần tử văn bản:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title")[0].childNodes[0]; x.nodeValue="";
Giải thích ví dụ:
- Bằng cách sử dụng loadXMLDoc() Bắt đầu với "books.xml"Ch载入docxml中"
- Đặt biến x thành văn bản của phần tử text đầu tiên
- Sử dụng thuộc tính nodeValue để xóa văn bản của phần tử văn bản
Vòng lặp và thay đổi văn bản của tất cả các phần tử <title>: TIY
Xóa phần tử thuộc tính dựa trên tên
Phương thức removeAttribute(name) được sử dụng để xóa phần tử thuộc tính dựa trên tên.
Ví dụ: removeAttribute('category')
Mã nguồn sau đây xóa thuộc tính "category" trong phần tử đầu tiên <book>:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book"); x[0].removeAttribute("category");
Giải thích ví dụ:
- Bằng cách sử dụng loadXMLDoc() Bắt đầu với "books.xml"Ch载入docxml中"
- Sử dụng getElementsByTagName() để lấy phần tử book
- Xóa thuộc tính "category" từ phần tử nút đầu tiên của phần tử <book>
Duyệt qua và xóa tất cả thuộc tính "category" của các phần tử <book>: TIY.
Xóa nút thuộc tính dựa trên đối tượng
Phương thức removeAttributeNode(node) sử dụng đối tượng Node làm tham số để xóa nút thuộc tính.
Ví dụ: removeAttributeNode(x)
Mã đoạn sau này xóa tất cả các thuộc tính của phần tử <book>:
xmlDoc=loadXMLDoc("books.xml"); 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); } }
Giải thích ví dụ:
- Bằng cách sử dụng loadXMLDoc() Bắt đầu với "books.xml"Ch载入docxml中"
- Sử dụng getElementsByTagName() để lấy tất cả các nút book
- Kiểm tra từng phần tử book xem có thuộc tính không
- Nếu có thuộc tính trong phần tử book nào đó, hãy xóa thuộc tính đó
- Trang trước Thay đổi nút DOM
- Trang tiếp theo Thay thế nút DOM