2012-02-12 30 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结束未定义的错误。它没有设置!