<?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>
|