简体   繁体   中英

PHP Writing XML - File Not Being Saved

I have a php function inside one of my classes that simply creates an XML file of all of the objects. This is the code:

function writeXML(){
        //LOAD PROFILE
        //print "Profiles: <br>";
        //$pro = new Profile();

        $profileArray = $this->getAll();

        //var_dump($profileArray);
        //CHECK TO SEE IF THE XML FILE EXISTS IN THE LIBRARY/CONFIGURATION
        if(file_exists($_SESSION['ini'][rootPath] . "v/p.xml")){
            unlink($_SESSION['ini'][rootPath] . "v/p.xml");
        }

        //CREATE XML FILE
        //CREATE ROOT NODE
        $doc = new DOMDocument("1.0");
        $doc->formatOutput = true;

        //CREATE ROOT NODE
        print "Creating nodes";
        $root = $doc->createElement("profiles");
        $root = $doc->appendChild($root);

        //ADD NODES
        //print "<br>Creating children";
        foreach($profileArray as $member){
                    //AS WE CYCLE THROUGH THE ARRAY GET THE ARRAY OF OBJECT PARAMETERS
                    $memberArray = $member->toArray();

                    //var_dump($memberArray);

            //CREATE MEMBER NODE TO ROOT
            $person = $doc->createElement("profile");
            $person = $root->appendChild($person);

            //CREATE CHILD NODES FOR MEMBER
                        /*
                         * ID IS NOT NEEDED FOR IOS APP
            $id = $doc->createElement("ID");
            $id = $person->appendChild($id);

            $idValue = $doc->createTextNode($member->get_id());
            $idValue = $id->appendChild($idValue);
            */


            $lastName = $doc->createElement("lastName");
            $lastName = $person->appendChild($lastName);

            //$lastNameValue = $doc->createTextNode($member->get_lname());
                        $lastNameValue = $doc->createTextNode($memberArray['lastName']);
            $lastNameValue = $lastName->appendChild($lastNameValue);

            $firstName = $doc->createElement("firstName");
            $firstName = $person->appendChild($firstName);

            $firstNameValue = $doc->createTextNode($memberArray['firstName']);
                        //$firstNameValue = $doc->createTextNode($member->get_fname());
            $firstNameValue = $firstName->appendChild($firstNameValue);

                        $mobile = $doc->createElement("mobile");
            $mobile = $person->appendChild($mobile);

                        $mobileValue = $doc->createTextNode($memberArray['mobile']);
                        //$mobileValue = $doc->createTextNode($member->get_mobile());
            $mobileValue = $mobile->appendChild($mobileValue);

                        $phone = $doc->createElement("phone");
            $phone = $person->appendChild($phone);

            $phoneValue = $doc->createTextNode($memberArray['phone']);
                        //$phoneValue = $doc->createTextNode($member->get_phone());
            $phoneValue = $phone->appendChild($phoneValue);

            $email = $doc->createElement("email");
            $email = $person->appendChild($email);

            $emailValue = $doc->createTextNode($memberArray['email']);
                        //$emailValue = $doc->createTextNode($member->get_email());
            $emailValue = $email->appendChild($emailValue);

            $altEmail = $doc->createElement("altEmail");
            $altEmail = $person->appendChild($altEmail);

            $altEmailValue = $doc->createTextNode($memberArray['altEmail']);
                        //$altEmailValue = $doc->createTextNode($member->get_altemail());
            $altEmailValue = $altEmail->appendChild($altEmailValue);

            $street = $doc->createElement("address");
            $street = $person->appendChild($street);

            $streetValue = $doc->createTextNode($memberArray['street']);
                        //$streetValue = $doc->createTextNode($member->get_street());
            $streetValue = $street->appendChild($streetValue);

            $city = $doc->createElement("city");
            $city = $person->appendChild($city);

            $cityValue = $doc->createTextNode($memberArray['city']);
                        //$cityValue = $doc->createTextNode($member->get_city());
            $cityValue = $city->appendChild($cityValue);

            $state = $doc->createElement("state");
            $state = $person->appendChild($state);

            $stateValue = $doc->createTextNode($memberArray['state']);
                        //$stateValue = $doc->createTextNode($member->get_state());
            $stateValue = $state->appendChild($stateValue);

            $zip = $doc->createElement("zip");
            $zip = $person->appendChild($zip);

            $zipValue = $doc->createTextNode($memberArray['zip']);
                        //$zipValue = $doc->createTextNode($member->get_zip());
            $zipValue = $zip->appendChild($zipValue);

                        $image = $doc->createElement("image");
                        $image = $person->appendChild($image);

                        $imageValue = $doc->createTextNode($memberArray['image']);
                        $imageValue = $image->appendChild($imageValue);

            $titles = $doc->createElement("title");
            $titles = $person->appendChild($titles);

                        $titlesValue = $doc->createTextNode($memberArray['title']);
            //$titlesValue = $doc->createTextNode($member->get_field5());
            $titlesvalue = $titles->appendChild($titlesValue);

                        $group = $doc->createElement("group");
                        $group = $person->appendChild($group);

                        $groupValue = $doc->createTextNode($memberArray['group']);
                        $groupVAlue = $person->appendChild($groupValue);
        }
        print "<br>Saving XML<br><br>";
        $xml_string = $doc->saveXML();
        print "XML<br>";
        print $xml_string;
                print "<br>";
                print "Path: " . $_SESSION['ini']['rootPath'] . "public_html/v/p.xml";

        //if($doc->save($_SESSION['ini']['htmlPath'] . "v/p.xml")) return true;
                //else return false;
                print "Bytes: " . $doc->save($_SESSION['ini']['rootPath'] . "public_html/v/p.xml");

    }

I really need another set of eyes on this as the saveXML completes and even spits out the $xml_string to the screen. However, the $doc->save does not show anything at all.

Ideas?

If you want to save the xml to a file you need to use save , not saveXML .

Do you pass the filename to the save? the save will be like:

$filename=$_SESSION['ini'][rootPath] . "v/p.xml";
$doc->save($filename);

Other question: $_SESSION['ini'][rootPath] are you sure if it's setted?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM