HTML Tidy

Một phần của tài liệu XÂY DỰNG ỨNG DỤNG GADGET (Trang 30 - 31)

HTML là ngôn ngữ không phân biệt hoa thường (hai thẻ <td> và <TD> đều là một). Các phần tử HTML cần có một thẻ mở và một thẻ đóng, tuy nhiên điều này không luôn luôn đúng, có nhiều phần tử không cần thẻ đóng, ví dụ các thẻ<br>, <hr> và <li>. Ngoài ra khi lồng nhau, các phần tử HTML cũng không cần thiết phải lồng nhau theo đúng thứ tự (tức là thẻ nào mở trước thì phải đóng sau) ví dụ sau là hợp lệ trong HTML [2]:

<p>đoạn văn này được <b>in đậm</p></b>

Sự lồng nhau không đúng thứ tự của các phần tử HTML được gọi là overlapping (phủ lên nhau), mặc dù điều này không được phép trong đặc tả SGML, nhưng lại được chấp nhận bởi hầu hết các trình duyệt hiện nay.

Từ các đặc điểm trên ta có thể nhận thấy HTML không phải là một ngôn ngữ có cú pháp chặt chẽ, các đặc điểm như không cần đóng thẻ hoặc không cần lồng nhau đúng thứ tự sẽ là các trở ngại cho công việc đọc và phân tích văn bản HTML (HTML parsing), đặc biệt nếu sử dụng phương pháp tìm kiếm so trùng. Chính vì vậy, chúng ta cần phải chuyển đổi nội dung viết bằng HTML sang một định dạng ngôn ngữ khác có sự chặt chẽ hơn về cú pháp, điều này sẽ đem lại thuận lợi hơn cho quá trình xử lý về sau. Một ngôn ngữ đánh dấu được định nghĩa ra để thay thế cho HTML đó chính là XHTML.

Việc bóc tách, trích xuất dữ liệu hiệu quả hoàn toàn phụ thuộc vào sự chính xác của việc chỉ ra vị trí tương đối của phân vùng dữ liệu cần trích xuất trong nội dung HTML. Tuy nhiên HTML không phải là một ngôn ngữ có cấu trúc tốt, cần phải chuyển nội dung này sang dạng khác có cấu trúc hơn, đó chính là XHTML, với sự trợ giúp của HTML Tidy. Hơn nữa XHTML tận dụng được những điểm mạnh của XML, nên cũng đem lại các khả năng truy vấn tìm kiếm node mạnh mẽ bằng Xpath.

HTML Tidy là một ứng dụng phần mềm nguồn mở, giúp “sửa chữa” các tài liệu HTML bị lỗi cú pháp (bad HTML) hoặc chuyển hẳn chúng sang các tài liệu XHTML. HTML Tidy ban đầu được phát triển đầu tiên bởi Dave Raggett thuộc tổ chức W3C, sau này thì HTML Tidy trở thành một dự án của Sourceforge. HTML Tidy bao gồm một công cụ chạy trong môi trường command line và một gói thư viện TidyLib có chức năng tương tự để tích hợp vào các ngôn ngữ khác. Hiện nay TidyLib đã được tích hợp như một gói mở rộng từ phiên bản 5.0b3 trở đi (Tidy extension), điều này giúp lập trình viên có thể sử dụng ngay các khả năng của HTML Tidy như phân tích (parse),

kiểm tra (validate) và sửa chữa (repair) các tài liệu HTML, XHTML và XML. Sau đây là một số ví dụ về các khả năng của HTML Tidy [3]:

 Thêm các thẻ đóng bị thiếu và sửa các thẻ đóng không khớp. <h1>heading

<h2>subheading</h3> sẽ được chuyển thành: <h1>heading</h1> <h2>subheading</h2>

 Bổ sung ký tự “/” vào thẻ đóng của các thẻ anchor. <a href=”#ref”>References<a>

sẽ được chuyển thành:

<a href=”#ref”>References</a>

 Bổ sung các thẻ đóng bị thiếu trong các danh sách <body>

<li>1st list item <li>2nd list item sẽ được chuyển thành: <body>

<ul>

<li>1st list item</li> <li>2nd list item</li> </ul>

Chuyển nội dung HTML thành XHTML, đây là một khả năng được sử dụng phổ biến của HTML Tidy.

Một phần của tài liệu XÂY DỰNG ỨNG DỤNG GADGET (Trang 30 - 31)

Tải bản đầy đủ (PDF)

(47 trang)