2012-02-12 2 views
0

У меня возникла проблема с загрузкой моего xml-файла с помощью simplexml_load_file(), действительно будет очень признательна за помощь. Код работал пару раз, и после этого все, что у меня получилось, не удалось открыть файл, хотя файл существует. Спасибо.ошибки 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

+0

никаких сообщений об ошибках, которые были отображены, является «Невозможно загрузить файл XML», – NathanielR

+0

укажите правильный путь к вашему XML-файлу. – ThinkingMonkey

ответ

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. Это не установлено!

Смежные вопросы