Ứng Dụng Của XML (Extensible Markup Language) - Thầy Long Web

Ứng dụng của XML rất đa dạng, là người lập trình bạn cần phải biết để sử dụng nhé, không nhiều thì ít. Trong phát triển ứng dụng thế nào bạn cũng đụng đến.

1. Khái niệm về XML

XML là một ngôn ngữ được tạo ra để đánh dấu dữ liệu một cách có cấu trúc. Nói một cách đơn giản hơn: XML là ngôn ngữ quan tâm đến cấu trúc dữ liệu. Mục tiêu là để tạo ra cách mô tả cấu trúc của dữ liệu để trao đổi dữ liệu giữa các hệ thống thông tin, các ứng dụng với nhau.

Mục tiêu của XML khác với HTML, HTML hướng đến việc hiện dữ liệu cho đẹp, còn XML hướng đến việc mô tả cấu trúc của dữ liệu.

Ví dụ có 2 website muốn trao đổi thông tin với nhau, website này gửi qua website kia 1 đoạn text gồm danh xưng, họ tên, địa chỉ, thành phố. Trong chuỗi text dài đó, làm sao bên website đích biết được đâu là họ tên, khúc nào là địa chỉ, chỗ nào là thành phố? XML giúp giải quyết rất đơn giản. Bạn hãy xem trong 2 hình dưới:

Hình dưới đây là 1 file code HTML: nó giúp hiện họ tên rồi xuống hàng, rồi hiện địa chỉ dạng chữ nghiêng, rồi xuống hàng và hiện HCM.

code-html

Còn đây là 1 file dữ liệu XML, nó mô tả chi tiết đâu là danh xưng, đâu là họ, đâu là tên, địa chỉ, thành phố.

Việc “cắt khúc” dữ liệu vào các tag như title, city… là rất quan trọng, nó giúp bạn mô tả cấu trúc của dữ liệu, giúp website khác/ứng dụng khác website dễ dàng hiểu được dữ liệu của bạn.

Ngày nay việc trao đổi thông tin giữa các ứng dụng hay website là rất nhiều, cho nên dữ liệu xuất ra từ 1 bên mà có cấu trúc là rất quan trọng. Chẳng hạn bạn cần lấy danh sách của 3000 nhân viên trong 1 ứng dụng đã có để đưa qua ứng dụng mới. Kha kha, dùng xml nhé.

2. Các quy luật cơ bản khi tạo file XML

  • Nên có 1 tag gốc (Root Element) chứa mọi tag bên trong. Tài liệu XML không có root element được gọi là một XML fragment. Để làm cho nó well-formed, bạn cần thêm một root Element
  • Mỗi tag phải có đóng. Mở đầu và đóng phải giống hoàn toàn (phân biệt hoa thường), tên tag do bạn tự bịa ra .
  • Phần tử con phải nằm hoàn toàn trong cha.
  • Mỗi phần tử có thể có nhiều thuộc tính. Giá trị của 1 thuộc tính đặt trong dấu nháy.
  • Nên có các Processing Instruction cặp tags <? và ?> để thông tin về version của XML trong tài liệu cho parser xử lý, nó cũng cho biết data trong XML dùng encoding nào.

3. Các khái niệm

  • Element: Phần tử.
  • Root Element: Phần tử gốc.
  • Attribute: Thuộc tính.
  • Parser: là chương trình kiểm tra cú pháp file xml. Ví dụ: Excel là 1 parse
  • Xpath: Là cách thức để định vị hay lựa chọn phần tử trong 1 tài liệu XML.
<order orderno="1047"><orderdate>2002-03-26</orderdate><customer>John Costello</customer><item><product productid="1" unitprice="70">Chair</product><quantity>6</quantity></item><item><product productid="2" unitprice="250">Desk</product><quantity>1</quantity></item></order>

Xpath là /order để chọn phần tử orderXpath /order/Customer để chọn phần tử CustomerXPath /order/@orderno để chọn thuộc tính orderno của orderXpath /order//product để chọn các node Product

4. Ứng dụng của XML

Ứng dụng của XML thì rất nhiều, dưới đây nêu một vài ứng dụng phổ biến

a. Ứng dụng xml để lưu trữ dữ liệu

Mỗi 1 file xml tương đương với 1 table trong mysql, mỗi file xml chứa nhiều dữ liệu như 1 table của mysql vậy. Hãy xem ví dụ sau:

Đây là 1 table trong mysql. Có 3 cột, chứa tên và địa chỉ các website.

Thay vì lưu trong table như vậy, bạn có thể lưu tên và địa chỉ website trong 1 file xml như sau:

(Bạn dùng notpad++ hoặc 1 trình soạn tạo text, tạo 1 file có tên websites.xml và code nhé)

b. Ứng dụng XML để lưu dữ liệu trong công nghệ RSS

RSS là công nghệ dùng để publish các thông tin mới trong 1 website. Bạn xem các trang sau:

https://thanhnien.vn/rss/doi-song/am-thuc.rss

https://thanhnien.vn/rss/doi-song/song-xanh.rss

c. Ứng dụng XML để trao đổi thông tin giữa các website với nhau

Ứng dụng về việc này bạn đã thấy đề cập ở trên. XML thường được dùng để trao đổi giữa các website, rất cần thiết trong lập trình tương tác. Khi dữ liệu được luân chuyển giữa các website phải có cấu trúc mới có thể đọc được.

Ví dụ bạn cần gửi sms từ website của mình. Website của bạn tương tác với website nhà mạng để gửi, thông tin gửi và kết quả gửi trao đổi giữa 2 website thường sử dụng là xml, vì với 1 khối text xml, có thể diễn tả nhiều thông tin có ý nghĩa: đâu là số điện thoại, đâu là nội dung tin nhắn…

5. Chuẩn bị thực tập

Trong htdocs, bạn tạo folder xml để chuẩn bị thực tập nhé, các file sao sẽ tạo trong folder xml này. File websites.xml bạn tạo thử ở trên cũng chép vào folder xml này nhé.

6. Tạo tài liệu XML

Bạn thử thực tập tạo thử 2 tài liệu xml sau nhé

a. Mở notepad++, tạo file xml\books1.xml và code như hình dưới. Tài liệu xml này sẽ chứa thông tin của các cuốn sách, mỗi sách nằm trong tag book, mỗi tag book có 4 tag con là title, price, author, publisher và 1 thuộc tính là isbn.

b. Mở notepad++, tạo file xml\books2.xml và code như hình dưới. Tài liệu xml này sẽ chứa thông tin của các cuốn sách giống như trên, mỗi sách nằm trong tag book, mỗi tag book có 5 thuộc tính là title, price, author, publisher và isbn.

Việc dùng tag con hay thuộc tính đều được, tuỳ quan điểm và sẽ ảnh hưởng đến cách bạn truy xuất đến các giá trị bên trong.

7. Đọc file XML dùng Jquery

Tạo file xml\websites.html

<meta charset="UTF-8"><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"> </script><script>$(document).ready(function(){$.ajax({ url: "websites.xml", dataType: "xml", success: function(xml) { $(xml).find('row').each(function(){ var id = $(this).attr('id'); var ten = $(this).find('ten').text(); var url = $(this).find('url').text(); var data = "<p><a href="+ url + ">" + ten + "</a></p>"; $(data).appendTo('#wrap'); }); }});});</script><div id="wrap"> <h2>ĐỌC FILE DÙNG JQUERY</h2> </div>

Xem thử sẽ thấy OK

kết quả đọc xml bằng jquery

8. Đọc file XML dùng PHP

Trong PHP có hai hàm mà bạn có thể dùng để đọc xml

  • simplexml_load_file — Đọc file xml thành tài liệu xml trong bộ nhớ
  • simplexml_load_string — Đọc chuỗi xml thành tài liệu xml trong bộ nhớ

Ví dụ 1 : tạo file xml\xembookA.php

<table border="1" width="600" cellspacing="0" cellpadding="4"><?php $xml= simplexml_load_file("books1.xml"); // Load file ?><?php foreach($xml->children() as $b) { // Lặp in hết nội dung ?><tr> <td> <?=$b -> title ?> </td><td> <?=$b -> author?> </td><td> <?=$b -> publisher?> </td><td> <?=$b -> price?> </td><td> <?=$b['isbn']?> </td></tr><?php }?></table>

Ví dụ 2 : tạo file xml\xembookB.php

<table border=1 width=600 cellspacing=0 align=center><tr><th>Title</th><th>Author</th><th>Publisher</th><th>Price</th><th>ISBN</th></tr><?php $books= new SimpleXMLElement("books1.xml",null,true); foreach($books as $b){ echo <<<EOF<tr> <td> {$b -> title} </td> <td> {$b -> author} </td> <td> {$b -> publisher} </td> <td> {$b -> price} </td> <td> {$b['isbn']} </td></tr>EOF;}?></table>
kết quả đọc xml bằng PHP

Ví dụ 3 : tạo file xml\lienketwebsite.php

<?php $list= new SimpleXMLElement("websites.xml",null,true); ?><select onchange="window.open(this.value,'newwin');"><?php foreach($list as $ws) {?><option value='<?=$ws->url?>'><?=$ws->ten?></option><?php }?></select>

Từ khóa » Xml Là Gì Trong C++