| <?php |
| |
| class ReviewsParser { |
| |
| var $reviewsCatalog = array(); |
| |
| var $insideItem = false; |
| var $tag = ""; |
| var $title = ""; |
| var $link = ""; |
| var $date = ""; |
| var $author = ""; |
| var $language = ""; |
| var $shortDesc = ""; |
| |
| |
| function add_review(& $review) { |
| $this->reviewsCatalog[] = $review; |
| } |
| |
| |
| function startElement($parser, $tagName, $attribs) |
| { |
| global $insideItem, $tag; |
| if ($insideItem) { |
| $tag = $tagName; |
| } |
| elseif ($tagName = "REVIEW") |
| { |
| $insideItem = TRUE; |
| } |
| |
| } |
| |
| function endElement($parser, $tagName) |
| { |
| global $reviewsCatalog, $insideItem; |
| |
| if ($tagName == "REVIEW") |
| { |
| $reviewsTemp = array($this->title, $this->link, $this->author, $this->date, $this->language, $this->shortDesc); |
| |
| $this->add_review($reviewsTemp); |
| $this->title = ""; |
| $this->link = ""; |
| $this->author = ""; |
| $this->date =""; |
| $this->language=""; |
| $this->shortDesc=""; |
| $this->insideitem = FALSE; |
| } |
| } |
| |
| function characterData($parser, $data) |
| { |
| |
| global $insideItem, $tag; |
| |
| if ($insideItem) |
| { |
| switch ($tag) { |
| case "TITLE": |
| $this->title .= $data; |
| break; |
| case "LINK": |
| $this->link .= $data; |
| break; |
| case "AUTHOR": |
| $this->author .= $data; |
| break; |
| case "DATE": |
| $this->date .= $data; |
| break; |
| case "LANGUAGE": |
| $this->language .= $data; |
| break; |
| case "SHORTDESC": |
| $this->shortDesc .= $data; |
| break; |
| } |
| } |
| } |
| |
| } |
| |
| $parser = xml_parser_create(''); |
| $reviewsParser = new ReviewsParser(); |
| xml_set_object($parser,&$reviewsParser); |
| xml_set_element_handler($parser, "startElement", "endElement"); |
| xml_set_character_data_handler($parser, "characterData"); |
| |
| $fp = fopen ("reviews.xml", "r") or die ("File I/O Problem"); |
| //stream_filter_append($fp, 'convert.base64-encode'); |
| while ($data = fread($fp, 4096)) |
| { |
| xml_parse($parser, $data, feof($fp)) or die("XML Error"); |
| } |
| fclose ($fp); |
| xml_parser_free($parser); |
| |
| ?> |