2012-02-12 56 views
0

我在使用simplexml_load_file()加載我的xml文件時遇到問題,非常感謝您的幫助。代碼工作了幾次,之後,我得到的所有文件都無法打開,即使該文件存在謝謝。simplexml_load_file錯誤工作了幾次然後停止;

<?php 
echo 'starting read<br>'; 
//////////////////////////////////// 
//$categories=$_POST["categories"]; 
//$project=$_POST["project"]; 
//$camera=$_POST["camera"]; 
//$description=$_POST["description"]; 
//$num=$_POST["val"]; 
/////////////////////////////////// 
$categories='a'; 
$project='a'; 
$camera='a'; 
$description='a'; 
$num=2; 
////////////////////////////////// 
$data=$categories.'<br />'.$project.'<br />'.$camera.'<br />'.$description; 
echo $data; 
$file = "main.xml"; 
//checking if file exists 
if(!file_exists($file)) 
    {echo'<br> file does not exist<br>'; 
    } 
else 
echo '<br> file exists <br>'; 

// load file 
$xml = simplexml_load_file($file) or die ("Unable to load XML file!"); 


// access XML data 

$val=$xml->settings->imagesPage->imagesGallery->pageTitle[$num]; 
echo $val; 
$xml->settings->imagesPage->imagesGallery->pageTitle[$num]=$data; 
file_put_contents($file, $xml->asXML()); 

    echo '<br>'. $desc.'\n'; 

?> 

這是XML文件結構

<?xml version="1.0" encoding="iso-8859-1"?> 
    <content> 
     <settings> 
      <imagespage> 
      <imagesGallery> 
       <pageTitle><![CDATA[<br>SED UT PERSPI<br>CANON 124<br>LOREM IPSUM<br>DOLOR SIT AMET]]></pageTitle> 
       <pageTitle><![CDATA[<br>SED UT PERSPI<br>CANON 124<br>LOREM IPSUM<br>DOLOR SIT AMET]]></pageTitle> 
        <pageTitle><![CDATA[<br>SED UT PERSPI<br>CANON 124<br>LOREM IPSUM<br>DOLOR SIT AMET]]></pageTitle> 
        <pageTitle><![CDATA[<br>SED UT PERSPI<br>CANON 124<br>LOREM IPSUM<br>DOLOR SIT AMET]]></pageTitle> 
        <pageTitle><![CDATA[<br>SED UT PERSPI<br>CANON 124<br>LOREM IPSUM<br>DOLOR SIT AMET]]></pageTitle> 
       </imagesGallery> 
      </imagespage> 
     </settings> 
    </content> 

allow_url_fopen已被設置爲ON

我也確信
+1

你是否收到錯誤信息?如果是,什麼? – axiomer 2012-02-12 06:05:55

+0

所有顯示的錯誤消息都是「無法加載XML文件」, – NathanielR 2012-02-12 06:40:32

+0

給出了正確的XML文件路徑。 – ThinkingMonkey 2012-02-12 06:49:47

回答

0

@tlenss謝謝我糾正$desc它應該是$data,你發現是一個錯字我在網頁上提出的其他錯誤

我的問題是,我的XML文件中加載一個正確的前幾次,但然後把錯誤說是無法負荷的var_dump($xml)仔細觀察我發現這個問題是知道,SimpleXML不能處理CDATA正確

所以我裝我的文件中像這樣

$xml = simpleXML_load_file($url,"SimpleXMLElement",LIBXML_NOCDATA); 

像這樣加載$xml = simplexml_load_file($file)如果你的文檔沒有cdata部分,那就好了

0

有上線一個小錯字34

$xml->settings->imagesPage->imagesGallery->pageTitle[$num]=$data; 

應該是

$xml->settings->imagespage->imagesGallery->pageTitle[$num]=$data; 

並且,除此之外,在$desc結束未定義的錯誤。它沒有設置!