Danh mục

Thứ Tư, 22 tháng 9, 2010

jQuery - XML

Khởi tạo XML

Để khởi tạo XML trong jQuery ta làm như sau:

var xml = $('<xml>');
xml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");

Biến xml giờ đây được hiểu là một XML object. Ta chỉ việc append các node con vào trong object này.

Thêm node

Hàm find được dùng để tìm kiếm các thẻ trong xml. Ví dụ ta muốn tạo một danh sách employee. Ta làm như sau:

 //Đầu tiên ta tạo thẻ employees chứa các thẻ employee
xml.append("<employees></employees>");

//Tạo thẻ employee con
var employee = "";
employee += "<employee>";
employee += "<name>Tran Van A</name>";
employee += "<date>202020</date>";
employee += "<email>abc@yahoo.com</email>";
employee += "<phone>00000000</phone>";
employee += "</employee>";

// Sau đó ta tạo các thẻ employee con.
// Ta dùng hàm find để tìm thẻ employees vừa tạo
xml.find("employees").each(function(){

// Thêm thẻ employee vào thẻ employees
jQuery(this).append(employee);

});

Cập nhật thông tin node

Sau khi thực hiện các lệnh trên ta có được nội dung xml như sau:

<?xml version="1.0" encoding="UTF-8"?>
<employees>
<employee>
<name>Tran Van A</name>
<date>202020</date>
<email>abc@yahoo.com</email>
<phone>00000000</phone>
</employee>
</employees>

Ta cần cập nhật thông tin tên của employee thành Nguyễn Văn B. Ta làm như sau:

// Lấy ra danh sách tất cả các thẻ name trong file xml
//Cách một
xml.find("name").each(function(){
if (jQuery(this).text()=="Tran Van A"){
jQuery(this).text("Nguyen Van B");
}
});

//Cách hai
xml.find("employees").each(function(){
jQuery(this).find("employee").each(function(){
jQuery(this).find("name").each(function(){
if(jQuery(this).text()=="Tran Van A"){
jQuery(this).text("Nguyen Van B");
}
});
});
});

Xóa một node

Sau khi thực hiện lệnh cập nhật, ta có nội dung xml như sau

<?xml version="1.0" encoding="UTF-8"?>
<employees>
<employee>
<name>Nguyen Van B</name>
<date>202020</date>
<email>abc@yahoo.com</email>
<phone>00000000</phone>
</employee>
</employees>

Bây giờ ta sẽ xóa node name của employee có tên là Nguyen Van B ra khỏi nội dung XML(Dùng hàm remove)

xml.find("employees").each(function(){
jQuery(this).find("employee").each(function(){
jQuery(this).find("name").each(function(){
if(jQuery(this).text()=="Nguyen Van B"){
// Dùng hàm remove để xóa node
jQuery(this).remove();
}
});
});
});

Nội dung file XML cuối cùng sẽ như sau

<?xml version="1.0" encoding="UTF-8"?>
<employees>
<employee>
<date>202020</date>
<email>abc@yahoo.com</email>
<phone>00000000</phone>
</employee>
</employees>

2 nhận xét:

  1. Ok bài viết rất hay, tôi cũng biết một bài viết hướng dẫn về jquery giới thiệu với anh em tại đây

    Trả lờiXóa
  2. var xml = $('');
    xml.append("");

    xin lỗi cho mình hỏi dòng thứ 2 cứ báo lỗi là sao, và tại đây không khai URL đường dẫn của file xml sao.

    vậy thì xml sẽ tìm và lấy dữ liệu từ file nào

    Trả lờiXóa