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 về cú pháp.

1. CDATA trong XML

Một tài liệu XML được xây dựng bởi các thẻ XML do lập trình viên tự định nghĩa ra, và đương nhiên lập trình viên phải tuân thủ các quy tắc mà XML đề ra (xem bài XML Element). Tuy nhiên có một số trường hợp dữ liệu chứa trong các thẻ XML lại có những ký tự đặc biệt dẫn đến tài liệu XML bị đảo lộn.

Ví dụ:

<?xml version="1.0" encoding="UTF-8"?>
<Tutorials>
    <Post>
        <Title>
            Học CDATA trong XML miễn phí
        </Title>
        <Code>
            <?xml version="1.0" encoding="UTF-8"?>
            <Persons>
                <Person>
                   Nguyễn Văn Cường 
                </Person>
            </Persons>
        </Code>
    </Post>
</Tutorials>

Bạn thấy nội dung bên trong thẻ Code là một đoạn mã XML khác, có nghĩa đây là trường hợp giá trị của the XML lại là một đoạn mã XML khác. Nếu chạy lên sẽ bị lỗi như hình dưới đây:

Để khắc phục trường hợp này ta sẽ sử dụng CDATA như sau:

<?xml version="1.0" encoding="UTF-8"?>
<Tutorials>
    <Post>
        <Title>
            Học CDATA trong XML miễn phí
        </Title>
        <Code>
            <![CDATA[ 
            <?xml version="1.0" encoding="UTF-8"?>
            <Persons>
                <Person>
                   Nguyễn Văn Cường 
                </Person>
            </Persons>
            ]]>
        </Code>
    </Post>
</Tutorials>

Như vậy cú pháp của CDATA là <![CDATA[nội dung]]>.

2. Sử dụng Special Character trong XML

Special character (đôi lúc ta gọi là thực thể) là những ký tự đặc biệt được chuyển đổi thành mỗi dãy các chữ cái và dấu &;

Như ở trong phần một ta sử dụng CDATA để khắc phục lỗi nội dung XML chứa kí tự đặc biệt. Nhưng cũng có một cách khác là bạn chuyển những ký tự đặc biệt đó sang Special characters như bảng dưới đây.

Thực thể Mô tả
&apos; Dấu nháy đơn '
&amp; Dấu &
&gt; Dấu >
&lt; Dấu <
&quot; Dáu nháy kép "

Ví dụ: Viết lại ví dụ trên bằng cách sử dụng Special character.

<?xml version="1.0" encoding="UTF-8"?>
<Tutorials>
    <Post>
        <Title>
            Học CDATA trong XML miễn phí
        </Title>
        <Code>
            &lt;?xml version="1.0" encoding="UTF-8"?&gt;
            &lt;Persons&gt;
                &lt;Person&gt;
                   Nguyễn Văn Cường 
                &lt;/Person&gt;
            &lt;/Persons&gt;
        </Code>
    </Post>
</Tutorials>

Chạy file XML này lên và mọi thứ đều ổn.

3. Lời kết

Cả hai cách trên đều dùng để xử lý nội dung bên trong thẻ XML, tuy nhiên chúng ta vẫn hay sử dụng CDATA bởi vì nó đơn giản nhưng lại rất hiệu quả.

Bài tiếp theo chúng ta sẽ tìm hiểu một số cách hiển thị XML trên trình duyệt.

Nguồn: freetuts.net

FREETUTS LÀM ĐẠI LÝ BÁN KHÓA HỌC ONLINE

Tin vui, hiện freetuts.net đã liên hệ được với các trung tâm dạy lập trình online (FEDU, UNICA, KYNA) để làm đại lý bán khóa học, giá sẽ rẻ hơn rất nhiều bởi mình đã trích % hoa hồng ra để hỗ trợ các bạn.

Tên khóa học Giá bán / giá giảm
UNICA - Thiết kế Powerpoint chuyên nghiệp

(Giảng viên: Trần Quang Vũ)

Gốc (0%): 500,000đ
Tại unica (0%): 499,000đ
Tại freetuts (52%): 240,000đ
XEM
MUA
UNICA - Microsoft Excel 2013 nâng cao

(Giảng viên: Nguyễn Quang Vinh)

Gốc (0%): 500,000đ
Tại unica (0%): 499,000đ
Tại freetuts (52%): 240,000đ
XEM
MUA
UNICA - Lập trình Web tốc độ cao, thời gian thực với NodeJS

(Giảng viên: Bá Ngọc Cương)

Gốc (0%): 1,000,000đ
Tại unica (30%): 699,000đ
Tại freetuts (52%): 480,000đ
XEM
MUA
UNICA - Thành thạo Excel 2010 trong 3 giờ

(Giảng viên: Lê Quang Hải)

Gốc (0%): 600,000đ
Tại unica (0%): 599,000đ
Tại freetuts (52%): 288,000đ
XEM
MUA
UNICA - Thành thạo với Google Spreadsheets

(Giảng viên: Đinh Thế Hùng)

Gốc (0%): 500,000đ
Tại unica (0%): 499,000đ
Tại freetuts (52%): 240,000đ
XEM
MUA

XEM TẤT CẢ

BÌNH LUẬN

Đặt câu hỏi: Hãy tham gia vào group học lập trình web để tham gia thảo luận và đặt câu hỏi, với hơn 20.000 thành viên hiện đang hoạt động tại group này. Ngoài ra bạn cũng có thể đặt câu hỏi nếu cần tư vấn về các vấn đề như định hướng nghề nghiệp, những khó khăn trong quá trình học tập.

Hỗ trợ việc làm: Hãy tham gia vào group việc làm công nghệ thông tin để tìm và đăng tuyển lập trình viên. Hy vọng đây sẽ là nơi tìm kiếm việc làm lý tưởng cho bạn và nhà tuyển dụng.