note 71174 deleted from class.xmlreader by thiago

From: Date: Wed, 12 Nov 2008 13:45:43 +0000
Subject: note 71174 deleted from class.xmlreader by thiago
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-146437@lists.php.net to get a copy of this message
Note Submitter: jamespic at gmail dot nsopam com ---- Example, as requested, with nested nodes. <?php ob_start(); ?> <root> <folder> <name>folder A</name> <files> <file> <name>Afile 1</name> </file> <file> <name>Afile 2</name> </file> </files> </folder> <folder> <name>folder B</name> <files> <file> <name>Bfile 1</name> </file> <file> <name>Bfile 2</name> </file> </files> </folder> </root> <?php $xmldata = ob_get_contents(); ob_end_clean(); $xml = new XMLReader(); $xml->XML($xmldata); $data = array(); while ($xml->read()) { while($xml->depth<=2 && $xml->nodeType==1) $xml->read(); if ($xml->nodeType==3 && $xml->depth==3) // NodeType 3 : Text Element { $strFolderName = $xml->value; $data[$strFolderName]=array(); while($xml->depth<=3) $xml->read(); while($xml->depth>=3) { //xdump(); if ($xml->nodeType==3) $data[$strFolderName][] = $xml->value; $xml->read(); } } } print_r($data); echo "\n"; ?> Output : Array ( [folder A] => Array ( [0] => Afile 1 [1] => Afile 2 ) [folder B] => Array ( [0] => Bfile 1 [1] => Bfile 2 ) )

« previous php.notes (#146437) next »