note 71174 added to ref.xmlreader
| From: | jamespicatgmaildotnsopamcom at osu1 dot php dot net | Date: | Wed, 15 Nov 2006 04:09:08 +0000 |
| Subject: | note 71174 added to ref.xmlreader | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-119734@lists.php.net to get a copy of this message | ||
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
)
)
----
Server IP: 195.221.21.36
Probable Submitter: 62.147.201.126
----
Manual Page -- http://www.php.net/manual/en/ref.xmlreader.php
Edit -- https://master.php.net/note/edit/71174
Del: integrated -- https://master.php.net/note/delete/71174/integrated
Del: useless -- https://master.php.net/note/delete/71174/useless
Del: bad code -- https://master.php.net/note/delete/71174/bad+code
Del: spam -- https://master.php.net/note/delete/71174/spam
Del: non-english -- https://master.php.net/note/delete/71174/non-english
Del: in docs -- https://master.php.net/note/delete/71174/in+docs
Del: other reasons-- https://master.php.net/note/delete/71174
Reject -- https://master.php.net/note/reject/71174
Search -- https://master.php.net/manage/user-notes.php