PHP & XML

XML là một ngôn ngữ đánh dấu trông rất giống HTML. Tài liệu XML là văn bản thuần túy và chứa các thẻ được phân tách bằng dấu <và>. Có hai điểm khác biệt lớn giữa XML và HTML -

  • XML không xác định một bộ thẻ cụ thể mà bạn phải sử dụng.
  • XML cực kỳ kén chọn cấu trúc tài liệu.

XML mang lại cho bạn nhiều tự do hơn HTML. HTML có một số thẻ nhất định: các thẻ <a> </a> bao quanh một liên kết, thẻ <p> bắt đầu đoạn văn, v.v. 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 xếp hạng phim, thẻ <height> </height> xung quanh chiều cao của ai đó. Vì vậy, XML cung cấp cho bạn tùy chọn thiết bị các thẻ của riêng bạn.

XML rất nghiêm ngặt khi nói đến cấu trúc tài liệu. HTML cho phép bạn chơi nhanh và đơn giản với một số thẻ mở và đóng. Nhưng đây không phải là trường hợp với XML.

Danh sách HTML không phải là XML hợp lệ

<ul>
   <li>Braised Sea Cucumber
   <li>Baked Giblets with Salt
   <li>Abalone with Marrow and Duck Feet
</ul>

Đây không phải là tài liệu XML hợp lệ vì không có thẻ đóng </li> để khớp với ba thẻ mở <li>. Mọi thẻ đã mở trong tài liệu XML phải được đóng lại.

Danh sách HTML là XML hợp lệ

<ul>
   <li>Braised Sea Cucumber</li>
   <li>Baked Giblets with Salt</li>
   <li>Abalone with Marrow and Duck Feet</li>
</ul>

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

PHP 5 mới SimpleXMLmô-đun làm cho việc phân tích cú pháp một tài liệu XML, tốt, đơn giản. Nó biến một tài liệu XML thành một đối tượng cung cấp quyền truy cập có cấu trúc vào XML.

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

Thí dụ

Hãy thử ví dụ sau -

<html>
   <body>
      
      <?php
         $note=<<<XML
         
         <note>
            <to>Gopal K Verma</to>
            <from>Sairamkrishna</from>
            <heading>Project submission</heading>
            <body>Please see clearly </body>
         </note>
         
         XML;
         $xml=simplexml_load_string($note);
         print_r($xml);
      ?>
		
   </body>
</html>

Nó sẽ tạo ra kết quả sau:

NOTE - Bạn có thể sử dụng chức năng simplexml_load_file( filename) nếu bạn có nội dung XML trong một tệp.

Để biết chi tiết đầy đủ về hàm phân tích cú pháp XML, hãy kiểm tra Tham chiếu Hàm PHP .

Tạo tài liệu XML

SimpleXML rất tốt để phân tích cú pháp các tài liệu XML hiện có, nhưng bạn không thể sử dụng nó để tạo một tài liệu mới từ đầu.

Cách dễ nhất để tạo một tài liệu XML là xây dựng một mảng PHP có cấu trúc phản chiếu cấu trúc của tài liệu XML và sau đó lặp qua mảng, in từng phần tử với định dạng thích hợp.

Thí dụ

Hãy thử ví dụ sau -

<?php
   $channel = array('title' => "What's For Dinner",
      'link' => 'http://menu.example.com/',
      'description' => 'Choose what to eat tonight.');
   
   print "<channel>\n";
   
   foreach ($channel as $element => $content) {
      print " <$element>";
      print htmlentities($content);
      print "</$element>\n";
   }
   
   print "</channel>";
?>

Nó sẽ tạo ra kết quả sau:

http://menu.example.com/ Choose what to eat tonight.