PHP & XML

XML là một ngôn ngữ đánh dấu mà khá giống HTML. Một tài liệu XML là thuần văn bản và chứa các thẻ được giới hạn bởi < và >. Có hai điểm khác nhau chủ yếu giữa XML và HTML.

  • XML không định nghĩa một tập các thẻ cụ thể.
  • XML thực sự "kén chọn" cấu trúc tài liệu.

XML cung cấp cho bạn nhiều đặc quyền hơn HTML. HTML có một tập hợp thẻ cụ thể: thẻ <a></a> bao quanh một link, thẻ <p> bắt đầu một đoạn văn, … Tuy nhiên, một tài liệu XML có thể sử dụng bất kỳ thẻ nào bạn muốn. Đặt thẻ <rating></rating> xung quanh một movie rating, thẻ <height></height> xung quanh độ cao của người nào đó. Vì thế, XML cung cấp cho bạn tùy chọn để cơ cấu các thẻ cho riêng bạn.

XML là khá nghiêm ngặt khi nói đến cấu trúc tài liệu. HTML cho bạn làm việc nhanh và khá mềm mỏng với các thẻ đóng và thẻ mở. Nhưng điều này không thể áp dụng với XML.

HTML List mà không hợp lệ trong XML

<ul>
   <li>Học PHP cơ bản và nâng cao
   <li>Học Java cơ bản và nâng cao
   <li>Học JavaScript cơ bản và nâng cao
</ul>

Đây là một tài liệu XML không hợp lệ, bởi vì không có thẻ đóng để so khớp với 3 thẻ mở

  • . Mỗi thẻ mở trong một tài liệu XML phải có thẻ đóng.

HTML List mà hợp lệ trong XML

<ul>
   <li>Học PHP cơ bản và nâng cao</li>
   <li>Học Java cơ bản và nâng cao</li>
   <li>Học JavaScript cơ bản và nâng cao</li>
</ul>

Phân tích cú pháp một tài liệu XML

SimpleXML module mới của PHP 5 giúp parse một tài liệu XML một cách đơn giản và tốt. Nó chuyển đổi một tài liệu XML thành một đối tượng mà cung cấp truy cập có tính cấu trúc tới XML.

Để tạo một đối tượng SimpleXML từ một tài liệu XML được lưu giữ trong một chuỗi, truyền chuỗi này tới hàm simplexml_load_string(). Nó trả về một đối tượng XML.

Ví dụ

Bạn thử ví dụ:

<html>
   <body>
      <?php
         $myXMLData =
        "<?xml version='1.0' encoding='UTF-8'?>
        <note>
        <to>Hoàng</to>
        <from>Nam</from>
        <heading>Ghi chú</heading>
        <body>Tối thứ bảy chơi AOE!</body>
        </note>";
        $xml=simplexml_load_string($myXMLData) or die("Error: Không thể tạo đối tượng");
        print_r($xml);
      ?>
   </body>
</html>

Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:

Ghi chú − Bạn có thể sử dụng hàm simplexml_load_file(filename) nếu bạn có nội dung XML trong một file.

Tạo một tài liệu XML

SimpleXML là tốt để parse các tài liệu XML đang tồn tại, nhưng bạn không thể sử dụng nó để tạo một tài liệu mới.

Cách đơn giản nhất để tạo một tài liệu XML là xây dựng một mảng trong PHP mà có cấu trúc phản ánh những gì của tài liệu XML và sau đó duyệt qua mảng đó, in mỗi phần tử với định dạng thích hợp.

Ví dụ

Bạn thử ví dụ:

<?php
   $channel = array('title' => "Loạt bài hướng dẫn ngôn ngữ lập trình miễn phí",
      'link' => 'http://hoc.tv',
      'description' => 'Hướng dẫn học mọi ngôn ngữ lập trình.');


   print "<channel>\n";


   foreach ($channel as $element => $content) {
      print " <$element>";
      print htmlentities($content);
      print "</$element>\n";
   }


   print "</channel>";
?>

Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả

Bình luận