2 $filename="http://www.nanodot.org/nanodot.rss";
5 var $insideitem = false;
11 function startElement($parser, $tagName, $attrs) {
12 if ($this->insideitem) {
13 $this->tag = $tagName;
14 } elseif ($tagName == "ITEM") {
15 $this->insideitem = true;
19 function endElement($parser, $tagName) {
20 if ($tagName == "ITEM") {
21 printf("<dt><b><a href='%s'>%s</a></b></dt>",
23 trim($this->link),htmlspecialchars(trim($this->title)));
25 printf("<dd>%s</dd>",htmlspecialchars(trim($this->description)));
27 $this->description = "";
29 $this->insideitem = false;
33 function characterData($parser, $data) {
34 if ($this->insideitem) {
37 $this->title .= $data;
40 $this->description .= $data;
50 $xml_parser = xml_parser_create();
51 $rss_parser = new RSSParser();
52 xml_set_object($xml_parser,&$rss_parser);
53 xml_set_element_handler($xml_parser, "startElement", "endElement");
54 xml_set_character_data_handler($xml_parser, "characterData");
55 $fp = fopen($filename,"r")
56 or die("Error reading RSS data.");
57 while ($data = fread($fp, 4096))
58 xml_parse($xml_parser, $data, feof($fp))
59 or die(sprintf("XML error: %s at line %d",
60 xml_error_string(xml_get_error_code($xml_parser)),
61 xml_get_current_line_number($xml_parser)));
63 xml_parser_free($xml_parser);