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

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.

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, namsinhgioitinh. 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).

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