<?php
 
    require_once("lib/domIT/xml_domIT_include.php");
 
    
 
    class xmlReader
 
    {
 
        var $domDocument;
 
        var $childNodes;
 
        var $strPath;
 
        
 
        function xmlReader($strDir, $strXMLFile)
 
        {
 
            $this->__construct($strDir, $strXMLFile);
 
        }
 
        
 
        function __construct($strDir, $strXMLFile)
 
        {
 
            $this->strPath = $strDir."/".$strXMLFile;
 
            $this->domDocument = & new DOMIT_Document();
 
        }
 
        
 
        function loadFile()
 
        {
 
            return $this->domDocument->loadXML($this->strPath);
 
        }
 
        
 
        function retRootElement()
 
        {
 
            return $this->domDocument->documentElement;
 
        }
 
        
 
        function parseNodes($rootNode, & $dest)
 
        {
 
            global $count;
 
            $nodeName =& $rootNode->nodeName;
 
            //$dest[$nodeName] = array();
 
            if($rootNode->hasAttributes())
 
            {
 
                $attributes = & $rootNode->attributes;
 
                for($i = 0; $i < $attributes->getLength(); $i++)
 
                {
 
                    $attrib = & $attributes->item($i);
 
                    $dest[$nodeName][$attrib->getName()] = $attrib->getValue();
 
                }
 
            }
 
            if($rootNode->hasChildNodes())
 
            {
 
                $cNodes = & $rootNode->childNodes;
 
                foreach($cNodes as $node)
 
                {
 
                    if($node->hasChildNodes())
 
                    {
 
                        //foreach($cNodes as $node)
 
                        $this->parseNodes($node, $dest[$nodeName][]);
 
                    }
 
                    else //if($node->nodeType == 1)
 
                    {
 
                        $endNode = & $rootNode->firstChild;
 
                        $dest[$nodeName] = $endNode->nodeValue;
 
                    }
 
                }
 
            }
 
            /*if($rootNode->nodeType == 1)
 
            {
 
                $endNode = & $rootNode->firstChild;
 
                $dest[$nodeName] = $endNode->nodeValue;
 
            }*/
 
 
            return $dest;
 
        }
 
    }
 
?>
 
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 
<html>
 
<head>
 
<title>Untitled Document</title>
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 
</head>
 
 
<body>
 
<?php
 
    $strDir = "xml";
 
    $strFile = "tSubmenu2.xml";
 
    
 
    $domDoc = new xmlReader($strDir, $strFile);
 
    $status = $domDoc->loadFile();
 
    
 
    if($status)
 
    {
 
        $arData = array();
 
        $rootElement =& $domDoc->retRootElement();
 
        
 
        $dest = array();
 
        $dest = $domDoc->parseNodes($rootElement, $dest);
 
        echo "<pre>";
 
        var_dump($dest);
 
        echo "</pre>";
 
    }
 
    
 
    
 
//----------------------------------------------------------------------    
 
/*    
 
    echo "<br><br><br>------------------------------------------<br>";
 
    $domDocument =& new DOMIT_Document();
 
    $success = $domDocument->loadXML("xml/tSubmenu2.xml");
 
    if($success)
 
    {
 
        $docElement = & $domDocument->documentElement;
 
        if($docElement->hasChildNodes())
 
        {
 
            $childNode = & $docElement->childNodes;
 
            foreach($childNode as $cNode)
 
            {
 
                echo $cNode->nodeName;
 
                if($cNode->hasAttributes())
 
                {
 
                    echo "<blockquote>";
 
                    echo "Attribute(s):-<br>";
 
                    $attributes =& $cNode->attributes;
 
                    echo "<blockquote><blockquote>";
 
                    for($i = 0; $i < $attributes->getLength(); $i++)
 
                    {
 
                        $attrib = & $attributes->item($i);
 
                        echo $attrib->getName()."=>".$attrib->getValue()."<br>";
 
                    }
 
                    echo "</blockquote></blockquote>";
 
                    echo "</blockquote>";
 
                }
 
                if($cNode->hasChildNodes())
 
                {
 
                    echo "<blockquote>";
 
                    $count = & $cNode->childCount;
 
                    echo "child nodes: $count<br>";
 
                    echo "Items:-<br>";
 
                    echo "<blockquote><blockquote>";
 
                    $nodes =& $cNode->childNodes;
 
                    foreach($nodes as $endNode)
 
                    {
 
                        $textNode =& $endNode->firstChild;
 
                        echo $endNode->nodeName."=>".$textNode->nodeValue."<br>";
 
                    }
 
                    echo "</blockquote></blockquote>";
 
                    echo "</blockquote>";
 
                }
 
            }
 
        }
 
    }*/
 
?>
 
</body>
 
</html>
 
 
 |