您好,欢迎访问一九零五行业门户网

php xml 保存到array数组

300)
                        {
                        print break;
                        break;
                        }
                $xmlstring = trim(substr($xmlstring, strpos($xmlstring, '                $thisnodeascends = (substr($xmlstring, 1, 1) == '/');
                $thisnodedescends = (substr($xmlstring, strpos($xmlstring, '>') - 1, 1) != '/');
                $nodename = substr($xmlstring, 1, strpos($xmlstring, ' ') -1);
                $openelement = substr($xmlstring, strpos($xmlstring, ' ') + 1);
                $openelement = substr($openelement, 0, strpos($openelement, '>') );
                if(substr($openelement, strlen($openelement) - 1, 1) == /)
                        {
                        $openelement = substr($openelement, 0, strlen($openelement) - 1);
                        }
                if($thisnodeascends)
                        {
                        $currentdepth--;
                        $currentnode = &$currenthierarchy[$currentdepth];
                        }
                else
                        {
                        if($thisnodedescends)
                                {
                                $currentnode[] = array('__attributes' => parsexmlattributesstring($openelement), '__children' => array(), '__nodename' => $nodename);
                                $currenthierarchy[$currentdepth] = &$currentnode;
                                $currentdepth++;
                                $lastitem = &$currentnode[count($currentnode) - 1];
                                $currentnode = &$lastitem['__children'];
                                }
                        else //this node is at the same level
                                {
                                $currentnode[] = array('__attributes' => parsexmlattributesstring($openelement), '__nodename' => $nodename);
                                }
                        }
                $xmlstring = substr($xmlstring, strpos($xmlstring, '>') + 1);
                }
        return $xmlarray;
        }
function parsexmlattributesstring($xmlelementstring)
        {
        $exitafter100loops = 0;
        $xmlelementarray = array();
        while($xmlelementstring != '')
                {
                $exitafter100loops++;
                if($exitafter100loops > 100)
                        {
                        print break;
                        break;
                        }
                $equalscharacterpos = strpos($xmlelementstring, '=');
                $key = trim(substr($xmlelementstring, 0, $equalscharacterpos));
                $xmlelementstring = substr($xmlelementstring, $equalscharacterpos + 1);
                $openbracket = substr($xmlelementstring, 0, 1);
                $xmlelementstring = substr($xmlelementstring, 1);
                $endbracketpos = strpos($xmlelementstring, $openbracket);
                $value = substr($xmlelementstring, 0, $endbracketpos);
                $xmlelementstring = substr($xmlelementstring, $endbracketpos + 1);
                if($key)
                        {
                        $xmlelementarray[$key]=$value;
                        }
                }
        return $xmlelementarray;
        }
?>
其它类似信息

推荐信息