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à >.. 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.. HTML có một tập
Trang 1PHP & 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>Braised Sea Cucumber
<li>Baked Giblets with Salt
<li>Abalone with Marrow and Duck Feet
</ul>
Đây là một tài liệu XML không hợp lệ, bởi vì không có thẻ đóng </li> để so khớp với 3 thẻ mở <li> 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>Braised Sea Cucumber</li>
<li>Baked Giblets with Salt</li>
<li>Abalone with Marrow and Duck Feet</li>
</ul>
Trang 2Phâ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
$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ẽ 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
Trang 3Để có danh sách đầy đủ các hàm liên quan tới việc parse tài liệu XML, bạn truy cập: Tổng hợp
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' => "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ẽ cho kết quả:
<channel>
<title>What's For Dinner</title>
<link>http://menu.example.com/</link>
<description>Choose what to eat tonight.</description>
Trang 4</channel>