SAX.xml
XML nên là như sau:
<?xml version="1.0" encoding="utf-8"?>
<tutors>
<course>
<name>Android</name>
<country>VietNam</country>
<email>[email protected]</email>
<phone>123456789</phone>
</course>
<course>
<name>Java</name>
<country>VietNam</country>
<email>[email protected]</email>
<phone>123456789</phone>
</course>
<course>
<name>HTML</name>
<country>VietNam</country>
<email>[email protected]</email>
<phone>123456789</phone>
</course>
</tutors>
SAX.php
Php file nên là như sau:
<?php
//đọc XML bởi sử dụng SAX (viết tắt của Simple API for XML) parser
$tutors = array();
$elements = null;
// gọi hàm này khi thẻ (tag) được mở
function startElements($parser, $name, $attrs)
{
global $tutors, $elements;
if(!empty($name))
{
if ($name == 'COURSE') {
// tạo một mảng để lưu giữ thông tin
$tutors []= array();
}
$elements = $name;
}
}
// gọi hàm này khi thẻ (tag) được đóng
function endElements($parser, $name)
{
global $elements;
if(!empty($name))
{
$elements = null;
}
}
// gọi trên phần text giữa thẻ đóng và thẻ mở
function characterData($parser, $data)
{
global $tutors, $elements;
if(!empty($data))
{
if ($elements == 'NAME' || $elements == 'COUNTRY' || $elements == 'EMAIL' || $elements == 'PHONE')
{
$tutors[count($tutors)-1][$elements] = trim($data);
}
}
}
// Tạo một XML parser mới và trả về một resource handle
// tham chiếu tới để được sử dụng bởi các hàm XML khác.
$parser = xml_parser_create();
xml_set_element_handler($parser, "startElements", "endElements");
xml_set_character_data_handler($parser, "characterData");
// mở xml file
if (!($handle = fopen('sax.xml', "r"))) {
die("Không thể mở XML input");
}
while($data = fread($handle, 4096)) // đọc xml file
{
xml_parse($parser, $data); // bắt đầu parse tài liệu XML
}
xml_parser_free($parser); // Xóa parser
$i=1;
foreach($tutors as $course)
{
echo "ID - ".$i.'<br/>';
echo "Tên khóa học - ".$course['NAME'].'<br/>';
echo "Quốc gia - ".$course['COUNTRY'].'<br/>';
echo "Email - ".$course['EMAIL'].'<br/>';
echo "Phone - ".$course['PHONE'].'<hr/>';
$i++;
}
?>
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ả:
Được cập nhật: 13 tháng 4 lúc 19:41:22 | Lượt xem: 396