Hàm xml_set_element_handler() trong PHP

Định nghĩa và cách sử dụng

Hàm xml_set_element_handler() thiết lập bộ xử lý phần tử bắt đầu và kết thúc.

Nếu bộ xử lý được tạo thành công, hàm này sẽ trả về true; ngược lại trả về false.

Ngữ pháp

xml_set_element_handler(parser,start,end)
Tham số Mô tả
parser Bắt buộc. Định nghĩa bộ phân tích XML cần sử dụng.
start Bắt buộc. Định nghĩa hàm được gọi khi phần tử bắt đầu.
end Bắt buộc. Định nghĩa hàm được gọi khi phần tử kết thúc.

bởi start Tham số quy định hàm phải có ba tham số:

Tham số Mô tả
parser Bắt buộc. Định nghĩa một biến chứa bộ phân tích XML của bộ xử lý.
name Bắt buộc. Định nghĩa một biến chứa tên của phần tử, phần tử này kích hoạt hàm này.
data Bắt buộc. Định nghĩa một mảng chứa thuộc tính của phần tử.

bởi end Tham số quy định hàm phải có ba tham số:

Tham số Mô tả
parser Bắt buộc. Định nghĩa một biến chứa bộ phân tích XML của bộ xử lý.
name Bắt buộc. Định nghĩa một biến chứa tên của phần tử, phần tử này kích hoạt hàm này.

Giải thích

startend Tham số cũng có thể là một mảng chứa tham chiếu đối tượng và tên phương thức.

Mô hình

<?php
$parser=xml_parser_create();
function start($parser,$element_name,$element_attrs)
  {
  switch($element_name)
    {
    case "NOTE":
    echo "-- Lưu ý --<br />";
    break; 
    case "TO":
    echo "Đến: ";
    break; 
    case "FROM":
    echo "Từ: ";
    break; 
    case "HEADING":
    echo "Tiêu đề: ";
    break; 
    case "BODY":
    echo "Thông báo: ";
    }
  }
function stop($parser,$element_name)
  {
  echo "<br />";
  }
function char($parser,$data)
  {
  echo $data;
  }
xml_set_element_handler($parser,"start","stop");
xml_set_character_data_handler($parser,"char");
$fp=fopen("test.xml","r");
while ($data=fread($fp,4096))
  {
  xml_parse($parser,$data,feof($fp)) or 
  die (sprintf("Lỗi XML: %s tại dòng %d", 
  xml_error_string(xml_get_error_code($parser)),
  xml_get_current_line_number($parser)));
  }
xml_parser_free($parser);
?>

Kết quả xuất ra:

-- Lưu ý --
Đến: George
Từ: John
Tiêu đề: Lời nhắc
Thông báo: Đừng quên cuộc họp!