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

Bài 7: Tìm hiểu về Conditional rendering(v-if, v-else, v-show) trong VueJS

Xin chào tất cả các bạn đã quay trở lại với series học VueJS với Laravel của mình, ở bài trước mình đã hướng dẫn các bạn về Wacher trong VueJS, ở trong bài này chúng ta sẽ cùng đến với Conditional rendering, đây là những thứ mà mình tin chắc các bạn sẽ dùng rất nhiều trong công việc. Ở bài này ...

Trịnh Tiến Mạnh viết 17:48 ngày 12/08/2018

Bài 4: Tìm hiểu về methods trong VueJS

Xin chào tất cả các bạn đến với series học VueJS với Laravel của mình, ở bài trước mình đã hướng dẫn các bạn cách sử dụng Vue-devtool để theo dõi các component trong ứng dụng, ở bài này, chúng ta sẽ cùng tìm hiểu về methods trong Vue, và cách sử dụng methods nhé. Đúng như tên gọi, methods là ...

Trịnh Tiến Mạnh viết 17:47 ngày 12/08/2018

Tìm hiểu mã nguồn mở PHP CMS Drupal hướng dẫn tìm hiểu Configuration trong Drupal - bài 10

Tiếp theo loạt bài viết về Drupal : Loạt bài đều nói về Drupal 8 nhé các bạn. Bài 1 Bài 2 Bài 3 Bài 4 Bài 5 Bài 6 Bài 7 Bài 8 Bài 9 Tổng quan Bài này mình hướng dẫn bạn các phần config khác mà mặc định drupal có sẵn. Chúng ta sẽ chuẩn bị hết và đầy đủ trước khi bước vào ...

Hoàng Hải Đăng viết 14:52 ngày 12/08/2018

Bài 2 - Tìm hiểu về Grid System trong Bootstrap

Bài trước, mình đã giới thiệu cho các bạn về Bootstrap. Nếu đã quên, bạn có thể đọc lại tại đây. Bài 1: Bootstrap là gì? Giới thiệu về Bootstrap Hôm nay, để đi sâu hơn, chúng ta sẽ tìm hiểu về Grid System trong Bootstrap. Grid system là gì Grid System là một hệ thống lưới và bao gồm nhiều ...

Tạ Quốc Bảo viết 14:22 ngày 12/08/2018

Tìm hiểu mã nguồn mở PHP CMS Drupal hướng dẫn tìm hiểu Modules trong Drupal - bài 3

Tiếp theo loạt bài viết về Drupal : Loạt bài đều nói về Drupal 8 nhé các bạn. Bài 1 Bài 2 Module trong Drupal là gì? Là sức mạnh của cộng đồng mạng Bởi vì cộng đồng Drupal rất lớn, cộng đồng chia sẻ tính đến thời điểm hiện tại khoảng 34.940 modules gồm tất cả các phiên bản Drupal ...

Tạ Quốc Bảo viết 13:42 ngày 12/08/2018
0