<html> 
<head> 
<title>HDObj test page</title> 
<style> 
body { 
    background: #eeeeee; 
} 
h3 { 
    text-align: center; 
} 
th { 
    border: 1px solid black; 
    background: #aaaaaa; 
} 
td { 
    text-align: left; 
    vertical-align: top; 
    border: 1px solid black; 
} 
</style> 
</head> 
<body> 
<h3>HDObj test page</h3> 
<?php 
include_once("hdobj.php"); 
 
function r_dump_errors(&$obj, $name="root") { 
    $obj->dump_errors(); 
    foreach ($obj->children as $child) { 
        r_dump_errors($obj->$child, $child); 
    } 
} 
// load unit test 
if (!file_exists("data.xml")) { 
    die("no data.xml in ".dirname(__FILE__)); 
} 
$fp = fopen("data.xml", "r"); 
$xml = fread($fp, filesize("data.xml")); 
fclose($fp); 
$obj = new HDObj($xml); 
//append unit test 
if (file_exists("append.xml")) { 
    print("(appending xml from append.xml)<br>"); 
    $fp = fopen("append.xml", "r"); 
    $appendxml = fread($fp, filesize("append.xml")); 
    fclose($fp); 
    $obj->append_xml($appendxml, 1); 
} 
print("hdobject's error log:<br>"); 
$obj->dump_errors(); 
/* 
print("<hr>"); 
$obj->printout(); 
*/ 
print("<hr>"); 
print("and now the hdobject reconstructs xml from its structure:<br>"); 
print($obj->toXML(true, true)); 
?> 
<hr> 
how about we do something more constructive with the object? 
<? 
    foreach ($obj->form as $form) { 
        print("<table><thead><th colspan=\"2\">Form #" 
            .$form->get_attrib("id")."</th></thead>"); 
        foreach($form->action as $action) { 
            print("<tr><td>Action #".$action->get_attrib("id")."</td>"); 
            print("<td><table>"); 
            print("<tr><td>name</td><td>".$action->name."</td></tr>"); 
            print("<tr><td>description</td><td>".$action->descr."</td></tr>"); 
            print("<tr><td>type</td><td>".$action->type."</td></tr>"); 
            print("</table></td></tr>"); 
        } 
        print("</table>"); 
    } 
?> 
</body> 
</html> 
 
 |