简体   繁体   English

PHP编写XML-文件未保存

[英]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. 我的一个类中有一个php函数,它可以简单地创建所有对象的XML文件。 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. saveXML完成,甚至在屏幕上吐出$xml_string ,我真的需要另一组眼睛。 However, the $doc->save does not show anything at all. 但是, $doc->save根本不显示任何内容。

Ideas? 有想法吗?

If you want to save the xml to a file you need to use save , not saveXML . 如果要将xml保存到文件中,则需要使用save而不是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? 另一个问题: $_SESSION['ini'][rootPath]您确定是否已设置吗?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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