2012-12-04 4 views
0

나는 모든 객체의 XML 파일을 만드는 내 클래스 중 하나에 PHP 함수를 가지고 있습니다. 이 코드입니다 :PHP를 작성하는 XML - 파일을 저장하지 않고

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"); 

    } 

난 정말 saveXML 완료로이에 눈의 다른 세트를 필요로하고, 심지어 화면에 $xml_string을 뱉는 다. 그러나 $doc->save은 전혀 표시하지 않습니다.

아이디어가 있으십니까?

답변

1

xml을 파일로 저장하려면 save이 필요하고 saveXML이 아닌 파일을 사용해야합니다.

파일 이름을 저장 파일로 전달합니까?

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

다른 질문 : 저장처럼 될 것입니다이 잘 살고있어 경우에 당신이 확실 $_SESSION['ini'][rootPath]입니까?

+0

예, $ _SESSION이 (가) 설정되었습니다. 나는 실제로 그것을 확인하기 위해 화면에 출력한다. 조금 변경하고 $ fileName = 세션 일을 한 다음 저장 함수를 전달합니다. 그러나 XML 파일은 아직 없습니다. – CodeMoto

+0

폴더 권한이 어쩌면? $ alldone = $ doc-> save ($ filename);'$ alldone'이'FALSE '이면 오류 로그를 검사하여 오류를 확인하십시오 (또는 오류 표시) –

+0

어떤 로그를 확인할 것인가? ? 또는 오류를 표시하려면 어떻게합니까? 나는 디렉토리 권한을 설정했다 : sudo chmod ugo + rwx 권한이 문제가되지 않아야한다. – CodeMoto

관련 문제