Chủ đề nổi bật
03/08/2018, 10:23

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à ...

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.

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

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, lastname và contactno 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.

BÀI KẾ SAU
BÀI KẾ TIẾP

Nguồn: code24h.com

Bài liên quan
Mới nhất

XML căn bản

BÀI KẾ SAU BÀI KẾ TIẾP

Bài 04: Tìm hiểu XML Attributes

Trong các thẻ HTML bạn sẽ có các thuộc tính như href, id, class, src, ... Các thuộc tính này chỉ có tác dụng đặc biệt trong tài liệu HTML chứ đối ...

Bài 06: Tìm hiểu XML Namespace

Bài này chúng ta sẽ tìm hiểu khái niệm về XML Namespace , nó sẽ giải quyết vấn đề trùng tên thẻ trong một tài liệu XML. 1. XML Namespace là ...

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à ...

Bài 03: Tìm hiểu Element trong XML

XML Element chúng ta đã sử dụng rất nhiều ở các ví dụ trước. Tuy nhiên ta chưa bàn tới vấn đề cú pháp và quy tắc chúng khi đặt tên cho nó, vì vậy ...

Bài 05: XML và các hệ quản trị CSDL (MySQL)

XML cũng là một dạng lưu trữ dữ liệu nhưng có điểm khác là nó lưu trữ trên file nên đối với những ứng dụng lớn vài triệu records thì rất khó để ...

Bài 07: Tìm hiểu CDATA trong XML

Bài này ta sẽ tìm hiểu cách sử dụng CDATA để giữ nguyên văn bản trong các thẻ XML, đây là một chức năng khá quan trọng giúp file XML không bị lỗi ...

Bài 01: XML là gì? Cú pháp căn bản của XML

Ngoài cách lưu trữ dữ liệu trong các hệ quản trị CSDL ra thì bạn có thể lưu trữ dữ liệu trong file TXT, file JSON hay file XML đều được. Tuy nhiên ...