Uzak bir XML dosyası yükleme ile sorun

0 Cevap php

Ben php kullanarak uzak bir xml dosyasını yüklemeye çalışıyorum.

Bu benim kodudur:

$doc = new DOMDocument();
$doc->load($this->xml_file);
$file = $doc->getElementsByTagName('file');
$totalFiles = $file->length;
echo $totalFiles;

Uzak xml dosyası link:

http://localhost/script/index.php?act=xml

Bu kodu index.php:

$xml = '<?xml version="1.0"?><MultimediaGallery>';

$query = mysql_query('SELECT `id`,`image`,`desc` FROM `'
          .confitem('database','prefix').'table` ORDER BY `id` DESC LIMIT '
          .$start.','.$limit);
while($result = mysql_fetch_array($query))
{
    $img = unserialize($result['image']);
    $desc = unserialize($result['desc']);
    $xml .= '<file type="photo"><thumb>'
      .settings('site','url').'/'.OPATH_APPFOLDER.'/'
      .OPATH_UPFOLDER.'/wallpapers/thumbs/'.$img[0].'</thumb><source>'
      .settings('site','url')
      .'/'.OPATH_APPFOLDER.'/'.OPATH_UPFOLDER
      .'/wallpapers/'.$img[0].'</source><description>'
      .$desc[$_SESSION['languagecode']].'</description></file>';
}

$xml .= '</MultimediaGallery>';
header("content-type: text/xml");
echo $xml;

Ben bu xml dosyası link tarayıcıda doğrudan ziyaret ettiğinizde .. bana bu tarzı ile xml dosya çıktısı:

<?xml version="1.0"?><MultimediaGallery><file type="photo"><thumb>http://localhost/script/application/data/wallpapers/thumbs/1116205566_42ce0841ab_s.jpg</thumb><source>http://localhost/script/application/data/wallpapers/1116205566_42ce0841ab_s.jpg</source><description>dfdfdfdf</description></file></MultimediaGallery>

Ben xml dosyasını yüklemek için dom kullandığı xml işlevini çalıştırdığınızda bu hatayı alıyorum:

Warning: DOMDocument::load() [domdocument.load]: Extra content at the end of the document in http://localhost/script/index.php, line: 2 in C:\AppServ\www\script\application\libraries\wallpapers\multimedia.class.php on line 46

Bu neden oluyor?

Update:

Ben yerine xml oluşturmak için dom kullandı:

$xml = new DOMDocument('1.0');
$root  =  $xml->createElement('MultimediaGallery');
$xml->appendChild($root); 

$query = mysql_query('SELECT `id`,`image`,`desc` FROM `'.confitem('database','prefix').'backgrounds` ORDER BY `id` DESC LIMIT '.$start.','.$limit);
while($result = mysql_fetch_array($query))
 {
  $img   = unserialize($result['image']);
  $desc  = unserialize($result['desc']);
  $element = $xml->createElement('file');
  $root->appendChild($element);
  $attr  =  $xml->createAttribute('type');
  $element->appendChild($attr);
  $attr_text = $xml->createTextNode('photo');
  $attr->appendChild($attr_text);

  $thumb  = $xml->createElement('thumb');
  $element->appendChild($thumb);
  $thumb_text = $xml->createTextNode(settings('site','url').'/'.OPATH_APPFOLDER.'/'.OPATH_UPFOLDER.'/wallpapers/thumbs/'.$img[0]);
  $thumb->appendChild($thumb_text);

  $source  = $xml->createElement('source');
  $element->appendChild($source);
  $source_text = $xml->createTextNode(settings('site','url').'/'.OPATH_APPFOLDER.'/'.OPATH_UPFOLDER.'/wallpapers/'.$img[0]);
  $source->appendChild($source_text);

  $description  = $xml->createElement('description');
  $element->appendChild($description);
  $description_text = $xml->createTextNode($desc[$_SESSION['languagecode']]);
  $description->appendChild($description_text);
 }

header("content-type: text/xml");
echo $xml->saveXML();

Ama yine de bana aynı hatayı veriyor. Ben, yine de bir şey fark ettim benim çıkış xml kopyalayıp bir dosyaya kaydetmek ve dom ayrıştırıcı kullanarak okumayı denedim ve sonuç başarılı okumuş oldu.

Ben php dosyası tarafından xml çıktı ayrıştırma çalıştığınızda Ama sonra bir hata atar.

0 Cevap