Пример Структуры Элемента XML

Первый пример отображает структуру начальных элементов в документе с отступом.

Пример #1 Показать структуру элемента XML

<?php
$file 
= "data.xml";
$depth = array();

function 
startElement($parser, $name, $attrs) 
{
    global 
$depth;

    if (!isset(
$depth[$parser])) {
        
$depth[$parser] = 0;
    }

    for (
$i = 0; $i < $depth[$parser]; $i++) {
        echo 
"  ";
    }
    echo 
"$name\n";
    
$depth[$parser]++;
}

function 
endElement($parser, $name) 
{
    global 
$depth;
    
$depth[$parser]--;
}

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
if (!(
$fp = fopen($file, "r"))) {
    die(
"Невозможно произвести чтение XML");
}

while (
$data = fread($fp, 4096)) {
    if (!
xml_parse($xml_parser, $data, feof($fp))) {
        die(
sprintf("Ошибка XML: %s на строке %d",
                    
xml_error_string(xml_get_error_code($xml_parser)),
                    
xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);
?>