Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: xml_parser - Error parsing RSS data!
 
 автор: Саша   (19.10.2006 в 13:25)   письмо автору
 
 

При парсинге этого файла 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($fp4096))
{
xml_parse($xml_parser$datafeof($fp))
or die(
"Error parsing RSS data!");
fwrite ($fw$data);
}
fclose($fp);
xml_parser_free($xml_parser);
?>

</body>

</html>

   
 
 автор: Саша   (19.10.2006 в 15:06)   письмо автору
 
   для: Саша   (19.10.2006 в 13:25)
 

Проблема в том, что если парсер встречает такую строчку, напр:

      <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>


т. е с ', он выдает ошибку. Экранировать не получается или, как в том коде заэкранировать?

   
 
 автор: cheops   (19.10.2006 в 23:14)   письмо автору
 
   для: Саша   (19.10.2006 в 15:06)
 

А нельзя перед использованием эту одиночную кавычку заменить на &#039;?

   
 
 автор: Саша   (20.10.2006 в 09:01)   письмо автору
 
   для: cheops   (19.10.2006 в 23:14)
 

Может кому пригодится

проблема здесь в кодировке, скорее всего, перекодировал в ютф8, и все заработало

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования