note 72120 added to ref.domxml
| From: | amsea at lvge dot com | Date: | Wed, 03 Jan 2007 15:08:02 +0000 |
| Subject: | note 72120 added to ref.domxml | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-121247@lists.php.net to get a copy of this message | ||
Hi, body. a update for the function of xml2array, to dispose the CDATA Node.
<?php
// func.xml2array.php
// updater from http://www.oo8h.com/
// a update function to dispose the CDATA
// add a case for XML_CDATA_SECTION_NODE:
function xml2array($domnode)
{
$nodearray = array();
$domnode = $domnode->firstChild;
while (!is_null($domnode))
{
$currentnode = $domnode->nodeName;
switch ($domnode->nodeType)
{
case XML_ELEMENT_NODE:
if ($domnode->hasAttributes() )
{
$elementarray = array();
$attributes = $domnode->attributes;
foreach ($attributes as $index => $domobj)
{
$elementarray[$domobj->name] = $domobj->value;
}
}
break;
case XML_CDATA_SECTION_NODE:
case XML_TEXT_NODE:
if(!(trim($domnode->nodeValue) == "")) $nodearray =
$domnode->nodeValue;
break;
}
if ( $domnode->hasChildNodes() )
{
$nodearray[$currentnode][] = xml2array($domnode);
if (isset($elementarray))
{
$currnodeindex = count($nodearray[$currentnode]) - 1;
$nodearray[$currentnode][$currnodeindex]['@'] = $elementarray;
}
} else {
if (isset($elementarray) && $domnode->nodeType != XML_TEXT_NODE)
{
$nodearray[$currentnode]['@'] = $elementarray;
}
}
$domnode = $domnode->nextSibling;
}
return $nodearray;
}
?>
update by amsea, http://www.oo8h.com/
----
Server IP: 66.163.161.117
Probable Submitter: 58.14.97.139
----
Manual Page -- http://www.php.net/manual/en/ref.domxml.php
Edit -- https://master.php.net/note/edit/72120
Del: integrated -- https://master.php.net/note/delete/72120/integrated
Del: useless -- https://master.php.net/note/delete/72120/useless
Del: bad code -- https://master.php.net/note/delete/72120/bad+code
Del: spam -- https://master.php.net/note/delete/72120/spam
Del: non-english -- https://master.php.net/note/delete/72120/non-english
Del: in docs -- https://master.php.net/note/delete/72120/in+docs
Del: other reasons-- https://master.php.net/note/delete/72120
Reject -- https://master.php.net/note/reject/72120
Search -- https://master.php.net/manage/user-notes.php