HỌC XML
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

Bài 02: Cấu trúc cây trong XML

Một tài liệu XML được tạo bởi các thẻ (XML element) và chúng có thể được tổ chức theo một cấu trúc cây thư mục, điều này còn có thể gọi là Nested  Elements trong XML. Vậy cách tổ chức như thế nào để có thể lưu trữ được dữ liệu trong thế giới thực? Chúng ta cùng tìm hiểu vấn đề này nhé.

1. Cấu trúc cây trong XML

Như ở bài tìm hiểu XML là gì mình có giới thiệu sơ lược về cách tạo thẻ Root Node (phần 2). Từ ví dụ đó ta có thể rút ra kết luận rằng các thẻ XML có thể lồng lên nhau, thẻ ngoài ta gọi là thẻ cha và các thể bên trong ta gọi là thẻ con.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Ví dụ: Sơ đồ cấu trúc cây tổ chức lưu trữ thông tin nhân viên trong một công ty

xml dom model jpg

Với sơ đồ này ta sẽ thực hiện từng bước tạo tài liệu XML như sau:

Bước 1: Thẻ ngoài cùng root là company

<?xml version="1.0" encoding="UTF-8"?>
<company>
    
</company>

Bước 2: Bên trong thẻ company có hai thẻ employee.

<?xml version="1.0" encoding="UTF-8"?>
<company>
    <employee>
       
    </employee>
    <employee>
        
    </employee>
</company>

Bước 3: Bên trong thẻ employee đầu tên gồm ba thẻ firstname, lastnamecontactno tương đương với ba giá trị như sau:

  • firstname => Tanmay
  • lastname => Patil
  • contactno => 123456789

<?xml version="1.0" encoding="UTF-8"?>
<company>
    <employee>
        <firstname>
            Tanmay
        </firstname>
        <lastname>
            Patil
        </lastname>
        <contactno>
            123456789
        </contactno>
    </employee>
    <employee>
        
    </employee>
</company>

Bước 4: Tương tự cho nội dung bên trong thẻ employee thứ hai.

<?xml version="1.0" encoding="UTF-8"?>
<company>
    <employee>
        <firstname>
            Tanmay
        </firstname>
        <lastname>
            Patil
        </lastname>
        <contactno>
            123456789
        </contactno>
    </employee>
    <employee>
        <firstname>
            Taniya
        </firstname>
        <lastname>
            Mishra
        </lastname>
        <contactno>
            123456789
        </contactno>
    </employee>
</company>

Như vậy là ta đã đặc tả xong cấu trúc XML lưu trữ dữ liệu ứng dụng quản lý nhân viên trong công ty.

Câu hỏi đặt ra là nếu ta lưu trữ thêm một nhân viên nữa thì phải làm thế nào? Rất đơn giản ta chỉ việc tạo thêm một thẻ employee và thêm thông tin là được.

<?xml version="1.0" encoding="UTF-8"?>
<company>
    <employee>
        <firstname>
            Tanmay
        </firstname>
        <lastname>
            Patil
        </lastname>
        <contactno>
            123456789
        </contactno>
    </employee>
    <employee>
        <firstname>
            Taniya
        </firstname>
        <lastname>
            Mishra
        </lastname>
        <contactno>
            123456789
        </contactno>
    </employee>
    <employee>
        <firstname>
            Cuong
        </firstname>
        <lastname>
            Nguyen
        </lastname>
        <contactno>
            0979306603
        </contactno>
    </employee>
</company>

Quá đơn giản và dễ hiểu phải không các bạn.

2 Cấu trúc cây nhiều cấp trong XML

Lấy ví dụ ở phần thứ nhất và bổ sung thêm yêu cầu sau: Môi nhân viên lưu trữ thêm danh sách người thân của nhân viên đó (chỉ cần lưu trữ tên, mối quan hệ).

Trước tiên ta cần tổ chức XML lưu trữ người thân đã. Giả sử mình sẽ lưu trữ dạng sau:

<family>
    <person>
        <name>Nguyễn Sơn</name>
        <relationship>Cha</relationship>
    </person>
    <person>
        <name>Lê Thị Sửu</name>
        <relationship>Mẹ</relationship>
    </person>
    <person>
        <name>Nguyễn Văn Trường</name>
        <relationship>Anh trai</relationship>
    </person>
</family>

Ráp vào bài toán thứ nhất ta sẽ có cấu trúc XML sau:

<?xml version="1.0" encoding="UTF-8"?>
<company>
    <employee>
        <firstname>
            Tanmay
        </firstname>
        <lastname>
            Patil
        </lastname>
        <contactno>
            123456789
        </contactno>
        <family>
            <person>
                <name>Nguyễn Sơn</name>
                <relationship>Cha</relationship>
            </person>
            <person>
                <name>Lê Thị Sửu</name>
                <relationship>Mẹ</relationship>
            </person>
            <person>
                <name>Nguyễn Văn Trường</name>
                <relationship>Anh trai</relationship>
            </person>
        </family>
    </employee>
</company>

Như vậy mỗi lần thêm nhân viên thì chỉ việc bổ sung thẻ employee và muốn thêm người thân thì chỉ việc bổ sung thẻ person.

3. Lời kết

Nếu bạn đã biết về HTML thì rất dễ hiểu bởi vì HTML được xây dựng dựa vào đặc tả của XML.

Bài này chúng ta đã học cách tạo một cấu trúc cây trong XML và thao tác với element khá nhiều. Tuy nhiên chúng ta chưa học nguyên tắc tạo ra element đó nên trong bài tiếp theo chúng ta sẽ tìm hiểu nguyên tắc tạo elements trong XML, ví dụ cách đặt tên và cách tạo thẻ không có thẻ đóng.

Cùng chuyên mục:

Phiên làm việc là gì trong SQL

Phiên làm việc là gì trong SQL

Trong bài viết này mình sẽ giải thích phiên làm việc là gì trong SQL…

Ràng buộc Check trong SQL

Ràng buộc Check trong SQL

Bài này bạn sẽ được học cách tạo ràng buộc giá trị trong SQL bằng…

Khóa ngoại Foreign Key trong SQL

Khóa ngoại Foreign Key trong SQL

Trong bài này bạn sẽ được học cách tạo khóa ngoại Foreign Key bằng câu…

Primary Key trong SQL

Primary Key trong SQL

Bài này bạn sẽ được giới thiệu cách tạo khóa chính (Primary Key) thể hiện…

Create và Drop Database trong SQL

Create và Drop Database trong SQL

Bài viết này sẽ hướng dẫn bạn cách sử dụng lệnh Create Database để tạo…

Subquery trong SQL - truy vấn con

Subquery trong SQL - truy vấn con

Trong bài này mình sẽ nói đến một cách sử dụng câu truy vấn SLECT…

Self Join trong SQL

Self Join trong SQL

Mỗi phép Join đều phải có hai bảng table1 và table2, tuy nhiên có trường…

Right Join trong SQL

Right Join trong SQL

Chào các bạn, hôm nay mình sẽ tiếp tục nói đến phép Join trong SQL.…

Left Join trong SQL

Left Join trong SQL

Ở bài trước chúng ta đã được tìm hiểu Inner Join và biết được tại…

Inner JOIN trong SQL

Inner JOIN trong SQL

Ở bài trước chúng ta đã học hiểu cách truy vấn nhiều bảng trong SQL…

Toán tử BETWEEN và NOT BETWEEN trong SQL

Toán tử BETWEEN và NOT BETWEEN trong SQL

Toán tử BETWEEN dùng để kiểm tra một giá trị có nằm trong một khoảng…

Tìm hiểu ALIAS  (AS) trong SQL

Tìm hiểu ALIAS (AS) trong SQL

Trong bài này mình sẽ nói về cách đặt lại tên cho column, table bằng…

Tích đề các trong SQL

Tích đề các trong SQL

Trong bài này mình sẽ hướng dẫn các bạn cách truy vấn dữ liệu trên…

Gộp dữ liệu với UNION và UNION ALL trong SQL

Gộp dữ liệu với UNION và UNION ALL trong SQL

Có một số trường hợp bắt buộc bạn phải chạy hai câu truy vấn nên…

Lọc dữ liệu trùng với DISTINCT trong SQL

Lọc dữ liệu trùng với DISTINCT trong SQL

Đôi khi có những câu truy vấn có kết quả bị trùng lặp thì lúc…

Toán tử AND và OR trong SQL

Toán tử AND và OR trong SQL

Trong bài này chúng ta học hai toán tử có thể nói là được sử…

Toán tử IN và NOT IN trong SQL

Toán tử IN và NOT IN trong SQL

Trong bài này chúng ta sẽ học hai lệnh mới dùng để kiểm tra một…

Toán tử LIKE và NOT LIKE trong SQL

Toán tử LIKE và NOT LIKE trong SQL

Trong bài này chúng ta sẽ tìm hiểu lệnh LIKE, lệnh này dùng để so…

Sắp xếp dữ liệu với ORDER BY trong SQL

Sắp xếp dữ liệu với ORDER BY trong SQL

Nếu bạn muốn sắp xếp dữ liệu trả về theo tăng dần hoặc giảm dần…

Lệnh Delete trong SQL

Lệnh Delete trong SQL

DELETE FROM posts WHERE post_id > 7000 AND post_content IS NOT NULL;

Top