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

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

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 trong bài này mình sẽ trình bày tất cả các vấn đề liên quan đến XML Elements.

Và để tiện cho việc viết tuts thì mình sẽ gọi là thẻ thay vì element nhé.

1. Element trong XML là gì?

Như ta biết một tài liệu XML sẽ chưa nhiều thẻ XML, các thẻ XML bao gồm tất cả mọi thứ từ thẻ khai báo trên header cho đến thẻ Root, các thẻ con, ... cho đến thẻ cuối cùng trong tài liệu.

Một thẻ XML dùng để chứa dư liệu dạng đơn giản (number, string) cho đến phức tạp (thẻ XML chứa thẻ XML).

Ví dụ ta cần viết một file XML để lưu trữ danh sách sinh viên gồm các thông tin:

  • Tên sinh viên (tensv)
  • Năm sinh (namsinh)
  • Giới tính (gioitinh)

Lúc này ta sẽ có ba thẻ chứa dữ liệu đơn giản đó là tensv, namsinh và gioitinh. Có một thẻ chứa dữ liệu phức tạp đó là thẻ sinhvien. Nhưng chưa dừng lại ở đó, như ở bài tìm hiểu xml là gì chúng ta cần xác định thêm một thẻ Root nữa. Phân tích kỹ thì ta thấy mỗi sinh viên sẽ được mô tả bởi thẻ sinhvien và tài liệu sẽ chứa nhiều sinh viên, vì vậy mình sẽ đặt tên cho thẻ root là ds-sinhvien. 

Như vậy dưới đây là cấu cây XML của chúng ta.

<?xml version="1.0" encoding="UTF-8"?>
<ds-sinhvien>
    <sinhvien>
        <tensv>[Data]</tensv>
        <namsinh>[Data]</namsinh>
        <gioitinh>[Data]</gioitinh>
    </sinhvien>
</ds-sinhvien>

2. Thẻ XML rỗng và rút gọn thẻ đóng

Một thẻ XML có thể chứa dữ liệu hoặc không chứa dữ liệu cũng được. Nếu không có dữ liệu thì ta để trống.

Ví dụ:

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

Trường hợp này bạn có thể rút gọn thẻ đóng bằng cách sau:

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

Nghĩa là ta sẽ đóng ngay thẻ mở luôn.

Một ví dụ điển hình của trường hợp thẻ XML rỗng như sau: Giả sử cần bổ sung thêm một thuộc tính mô tả (mota) dùng để mô tả sinh viên ở ví dụ trên. Lúc này cấu trúc XML sẽ như sau:

<?xml version="1.0" encoding="UTF-8"?>
<ds-sinhvien>
    <sinhvien>
        <tensv>[Data]</tensv>
        <namsinh>[Data]</namsinh>
        <gioitinh>[Data]</gioitinh>
        <mota>[Data]</mota>
    </sinhvien>
</ds-sinhvien>

Bây giờ mình sẽ lưu hai sinh viên thì cấu trúc XML sẽ như sau:

<?xml version="1.0" encoding="UTF-8"?>
<ds-sinhvien>
    <sinhvien>
        <tensv>Nguyễn Văn Cường</tensv>
        <namsinh>1990</namsinh>
        <gioitinh>Nam</gioitinh>
        <mota>Sinh viên đẹp zai thích viết tutorials.</mota>
    </sinhvien>
    <sinhvien>
        <tensv>Vũ Thị Thu Tình</tensv>
        <namsinh>1992</namsinh>
        <gioitinh>Nữ</gioitinh>
        <mota></mota>
    </sinhvien>
</ds-sinhvien>

Như vậy ở sinh viên thứ hai phần mô tả bị trống do không có mô tả cho sinh viên đó. Lúc này ta có thể ghi gọn cho thẻ mota như sau:

<sinhvien>
    <tensv>Vũ Thị Thu Tình</tensv>
    <namsinh>1992</namsinh>
    <gioitinh>Nữ</gioitinh>
    <mota/>
</sinhvien>

3. Một số quy tắc liên quan đến XML Element

Có một số quy tắc và điển hình nhất là các quy tắc sau.

Đặt tên thẻ:

  • Tên thẻ phải bắt đầu là một chữ cái hoặc ký tự gạch dưới.
  • Tên thẻ không được bắt đầu bằng XML (hoặc Xml, xMl, xmL) vì nó giống với thẻ khai báo header.
  • Tên thẻ không được chứa khoảng trắng.
  • Tên thẻ có thể chứa chữ cái, chữ số, dấu gạch dưới, dấu gạch ngang, dấu chấm và dấu hai chấm.

Cấu trúc thẻ:

  • Mỗi thẻ mở đều phải có thẻ đóng và chúng phải tuân theo đúng thứ tự.
  • Bạn có thể dùng thẻ đóng rút gọn nếu như thẻ đó rỗng

Naming styles:

Không có một chuẩn đặt tên thẻ nào trong XML cả nhưng người ta đề xuất ra một số cách đặt tên như sau:

Style Example Description
Lower case <firstname> Tất cả đều chữ in thường
Upper case <FIRSTNAME> Tất cả đều chữ in hoa
Underscore <first_name> Các từ cách nhau bởi dấu gạch dưới
Pascal case <FirstName> Viết hoa ký tự đầu tiên trong các từ
Camel case <firstName> Viết hoa ký tự đầu tiên trong từ thứ hai trở đi.

Lời khuyên là bạn nên đặt tên thẻ là một danh từ, nên đặt tên bằng tiếng Anh vì nó đơn giản và là ngôn ngữ chuẩn trên thế giới.

3. Lời kết

Trên là một số nguyên tắc khi các bạn làm việc với thẻ XML (XML Element), những nguyên tắc này khá quan trọng nên bạn phải đọc và nhớ nhé, nếu không sau này bạn đặt tên sai thì ngôn ngữ lập trình không thể biên dịch được.

Bài này mình dừng ở đây, bài tiếp theo chúng ta sẽ tìm hiểu thuộc tính trong XML (XML Properties).

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