Bài 07: Tìm hiểu CDATA trong XML - Học 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 ...
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.
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> <?xml version="1.0" encoding="UTF-8"?> <Persons> <Person> Nguyễn Văn Cường </Person> </Persons> </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.