Анализ XML в PHP с использованием функции xml_set_element_handler(): руководство с примером кода

Функция xml_set_element_handler()— это функция PHP, используемая для анализа XML-файлов. Он устанавливает обработчики начального и конечного элементов, которые вызываются, когда анализатор обнаруживает открывающий и закрывающий теги XML-элемента соответственно.

Вот пример использования функции xml_set_element_handler():

<?php
// Create a new XML parser
$parser = xml_parser_create();
// Define start element handler
function startElement($parser, $element_name, $element_attrs) {
    // Handle start element
    echo "Start Element: $element_name\n";
}
// Define end element handler
function endElement($parser, $element_name) {
    // Handle end element
    echo "End Element: $element_name\n";
}
// Set the start element handler
xml_set_element_handler($parser, "startElement", "endElement");
// Open the XML file for parsing
$xmlFile = fopen("example.xml", "r");
// Read and parse the XML file
while ($data = fread($xmlFile, 4096)) {
    xml_parse($parser, $data, feof($xmlFile));
}
// Close the XML file
fclose($xmlFile);
// Free the XML parser
xml_parser_free($parser);
?>

В этом примере мы сначала создаем новый синтаксический анализатор XML, используя функцию xml_parser_create(). Затем мы определяем две функции-обработчики: startElement()для обработки начальных элементов и endElement()для обработки конечных элементов. Мы передаем эти функции-обработчики функции xml_set_element_handler()для их регистрации.

Далее мы открываем XML-файл с помощью fopen(), читаем и анализируем файл с помощью xml_parse()и закрываем файл с помощью fclose(). Наконец, мы освобождаем анализатор XML, используя xml_parser_free().