XML DOM - Đặt nút
Trong chương này, chúng ta sẽ nghiên cứu về cách thay đổi giá trị của các nút trong một đối tượng DOM XML. Giá trị nút có thể được thay đổi như sau:
var value = node.nodeValue;
Nếu nút là một Thuộc tính thì biến giá trị sẽ là giá trị của thuộc tính; nếu nút là nút Văn bản thì nó sẽ là nội dung văn bản; nếu nút là một phần tử nó sẽ là null .
Các phần tiếp theo sẽ trình bày cài đặt giá trị nút cho từng loại nút (thuộc tính, nút văn bản và phần tử).
Các node.xml sử dụng trong tất cả các ví dụ sau đây là như dưới đây -
<Company>
<Employee category = "Technical">
<FirstName>Tanmay</FirstName>
<LastName>Patil</LastName>
<ContactNo>1234567890</ContactNo>
<Email>[email protected]</Email>
</Employee>
<Employee category = "Non-Technical">
<FirstName>Taniya</FirstName>
<LastName>Mishra</LastName>
<ContactNo>1234667898</ContactNo>
<Email>[email protected]</Email>
</Employee>
<Employee category = "Management">
<FirstName>Tanisha</FirstName>
<LastName>Sharma</LastName>
<ContactNo>1234562350</ContactNo>
<Email>[email protected]</Email>
</Employee>
</Company>
Thay đổi giá trị của nút văn bản
Khi chúng tôi, nói giá trị thay đổi của phần tử Node, chúng tôi muốn chỉnh sửa nội dung văn bản của một phần tử (còn được gọi là nút văn bản ). Ví dụ sau minh họa cách thay đổi nút văn bản của một phần tử.
Thí dụ
Ví dụ sau (set_text_node_example.htm) phân tích cú pháp một tài liệu XML ( node.xml ) thành một đối tượng XML DOM và thay đổi giá trị của nút văn bản của phần tử. Trong trường hợp này, hãy gửi Email của từng Nhân viên tới [email protected] và in các giá trị.
<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc(filename) {
if (window.XMLHttpRequest) {
xhttp = new XMLHttpRequest();
} else // code for IE5 and IE6 {
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",filename,false);
xhttp.send();
return xhttp.responseXML;
}
</script>
</head>
<body>
<script>
xmlDoc = loadXMLDoc("/dom/node.xml");
x = xmlDoc.getElementsByTagName("Email");
for(i = 0;i<x.length;i++) {
x[i].childNodes[0].nodeValue = "[email protected]";
document.write(i+');
document.write(x[i].childNodes[0].nodeValue);
document.write('<br>');
}
</script>
</body>
</html>
Chấp hành
Lưu tệp này dưới dạng set_text_node_example.htm trên đường dẫn máy chủ (tệp này và node.xml phải nằm trên cùng một đường dẫn trong máy chủ của bạn). Bạn sẽ nhận được kết quả sau:
0) [email protected]
1) [email protected]
2) [email protected]
Thay đổi giá trị của nút thuộc tính
Ví dụ sau minh họa cách thay đổi nút thuộc tính của một phần tử.
Thí dụ
Ví dụ sau (set_attribute_example.htm) phân tích cú pháp tài liệu XML ( node.xml ) thành đối tượng DOM XML và thay đổi giá trị của nút thuộc tính của phần tử. Trong trường hợp này, Category của từng Nhân viên tương ứng là admin-0, admin-1, admin-2 và in ra các giá trị.
<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc(filename) {
if (window.XMLHttpRequest) {
xhttp = new XMLHttpRequest();
} else // code for IE5 and IE6 {
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",filename,false);
xhttp.send();
return xhttp.responseXML;
}
</script>
</head>
<body>
<script>
xmlDoc = loadXMLDoc("/dom/node.xml");
x = xmlDoc.getElementsByTagName("Employee");
for(i = 0 ;i<x.length;i++){
newcategory = x[i].getAttributeNode('category');
newcategory.nodeValue = "admin-"+i;
document.write(i+');
document.write(x[i].getAttributeNode('category').nodeValue);
document.write('<br>');
}
</script>
</body>
</html>
Chấp hành
Lưu tệp này dưới dạng set_node_attribute_example.htm trên đường dẫn máy chủ (tệp này và node.xml phải nằm trên cùng một đường dẫn trong máy chủ của bạn). Kết quả sẽ như sau:
0) admin-0
1) admin-1
2) admin-2