<?php 
/* 
 * test_xml_parser.php 
 * 
 * @(#) $Id: test_xml_parser.php,v 1.10 2012/09/05 09:27:07 mlemos Exp $ 
 * 
 */ 
 
?><html> 
<head> 
<title>Test for Manuel Lemos's XML parser PHP class</title> 
</head> 
<body> 
<h1 align="center">Test for Manuel Lemos's XML parser PHP class</h1> 
<hr> 
<?php 
    require("xml_parser.php"); 
 
Function DumpArray(&$array,$indent) 
{ 
    for(Reset($array),$node=0;$node<count($array);Next($array),$node++) 
    { 
        echo $indent."\"".Key($array)."\"="; 
        $value=$array[Key($array)]; 
        if(GetType($value)=="array") 
        { 
            echo "\n".$indent."[\n"; 
            DumpArray($value,$indent."\t"); 
            echo $indent."]\n"; 
        } 
        else 
            echo "\"$value\"\n"; 
    } 
} 
 
Function DumpStructure(&$structure,&$positions,$path) 
{ 
    echo "[".$positions[$path]["Line"].",".$positions[$path]["Column"].",".$positions[$path]["Byte"]."]"; 
    if(GetType($structure[$path])=="array") 
    { 
        echo "<".$structure[$path]["Tag"]; 
        if(IsSet($structure[$path]["Attributes"])) 
        { 
            $attributes = $structure[$path]["Attributes"]; 
            $ta = count($attributes); 
            for(Reset($attributes), $a = 0; $a < $ta; Next($attributes), ++$a) 
            { 
                $attribute = Key($attributes); 
                echo " ", $attribute, "=\"", HtmlSpecialChars($attributes[$attribute]), "\""; 
            } 
        } 
        echo ">"; 
        for($element=0;$element<$structure[$path]["Elements"];$element++) 
            DumpStructure($structure,$positions,$path.",$element"); 
        echo "</".$structure[$path]["Tag"].">"; 
    } 
    else 
        echo $structure[$path]; 
} 
 
    $file_name="example.xml"; 
    $error=XMLParseFile($parser,$file_name,1,$file_name.".cache"); 
    if(strcmp($error,"")) 
        echo "<H2><center>Parser error: ".$error." Line: ".$parser->error_line." Column: ".$parser->error_column." Byte index: ".$parser->error_byte_index."</center></H2>\n"; 
    else 
    { 
        echo "<H2><center>Parsed file structure</center></H2>\n"; 
        echo "<P>This example dumps the structure of the elements of an XML file by displaying the tags and data preceded by their positions in the file: line number, column number and file byte index.</P>\n"; 
        echo "<PRE>"; 
        DumpStructure($parser->structure,$parser->positions,"0"); 
        echo "</PRE>\n"; 
    } 
?></body> 
</html> 
 
 |