(PHP) xml_parser - Error parsing RSS data!

sahar
Дата: 19.10.2006 13:21:51
При парсинге этого файла http://www.vantronix.de/xml/news.rdf, выдает ошибку! С нормальными файликами, типа http://www.washingtonpost.com/wp-dyn/rss/sports/index/wnba/index.xml работает. В чем проблема????? Вот код.

<html>

<head>
  <title>Заголовок сайта</title>
</head>

<body>

<?php

class RSSParser {
  var $insideItem = false;
  var $tag = "";
  var $title = "";
  var $description = "";
  var $originalLink = "";
  var $dt = "";

  function startElement($parser, $tagName, $attrs)
  {
if($this->insideItem)
{
  $this->tag = $tagName;
}
elseif($tagName == "ITEM")
{
  $this->insideItem = true;
}
  }

  function endElement($parser, $tagName)
  {
if($tagName == "ITEM")
{
  printf("<h2>%s</h2>", $this->title);
  printf("<h3>%s</h3>", $this->dt);
  printf("<p>%s</p>", $this->description);
  printf("<p><a href=\"%s\" target=\"_blank\">%s</a></p>",
  trim($this->originalLink), " Коментарии ");

  $this->title = "";
  $this->originalLink = "";
  $this->description = "";
  $this->dt = "";
  $this->insideItem = false;
}
  }

  function characterData($parser, $data)
  {
if($this->insideItem)
{
  switch($this->tag)
  {
case "TITLE":
  $this->title .= $data;
  break;
case "DESCRIPTION":
  $this->description .= $data;
  break;
case "LINK":
  $this->originalLink .= $data;
  break;
case "PUBDATE":
  $this->dt .= $data;
  break;
  }
}
  }
}

$xml_parser = xml_parser_create("UTF-8");
$rss_parser = new RSSParser();

xml_set_object($xml_parser, &$rss_parser);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");

$fp = fopen("http://www.vantronix.de/xml/news.rdf", "r")
   or die("Error reading RSS data!");
$fw = fopen("xml.xml", "w")   ;
while($data = fread($fp, 4096))
{
  xml_parse($xml_parser, $data, feof($fp))
   or die("Error parsing RSS data!");
   fwrite ($fw, $data);
}
fclose($fp);
xml_parser_free($xml_parser);
?>

</body>

</html>
Модератор: Об ошибке которую вы получаете все будут догадываться по звездам?
sahar
Дата: 19.10.2006 15:12:32
Модератор: Об ошибке которую вы получаете все будут догадываться по звездам?
--------------------------

Ну так ошибки не выдает!!!! Если б хотя б сказало, что вот в той строчке вот такая лажа!!!! ато просто завершает работу. хотя бы подскажите как ошибку выловить.
Кроме того код, который я дал рабочий, можно загрузить и помотреть

при некотором аналезе я выяснил, что загибается на такой вот строчке, с символом ' :

<description><br>Yuriy Pavlenko, Ukraine’s minister for family, youth and sports from the pro-presidential Our Ukraine party, tells the Post in this week’s Q&A that he has written his resignation from the cabinet following Our Ukraine’s recent decision to go into opposition<br><img src="http://www.kyivpost.com/pix/i25/25266_s.jpg" width="110" height="129" vspace="5">]]></description>
Aaz(aka Antson)
Дата: 19.10.2006 16:42:21
Мдя. скачивать и парсить файл одновременно.
и кто гарантирует что каждый скаченный кусок есть валидный ?

скачай сперва файл а потом его парси целиком
Kachalov
Дата: 19.10.2006 17:22:08
А почему Вы решили что кодировка RSS-документа именно UTF-8? Как я понял документ приходит в кодировке ISO-8859-1
sahar
Дата: 19.10.2006 21:44:34
Kachalov
А почему Вы решили что кодировка RSS-документа именно UTF-8? Как я понял документ приходит в кодировке ISO-8859-1


Да, именно здесь загвоздка, я перекодировал полученый файл в ютф8 и все заработало