| |
|
|
| | При парсинге этого файла 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>
|
| |
| |
|
|
| |
|
|
| |
для: Саша
(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>
|
т. е с ', он выдает ошибку. Экранировать не получается или, как в том коде заэкранировать? | |
| |
|
|
| |
|
|
| |
для: Саша
(19.10.2006 в 15:06)
| | | А нельзя перед использованием эту одиночную кавычку заменить на '? | |
| |
|
|
| |
|
|
| |
для: cheops
(19.10.2006 в 23:14)
| | | Может кому пригодится
проблема здесь в кодировке, скорее всего, перекодировал в ютф8, и все заработало | |
| |
|
|