| <?php |
| |
| class QuotesParser { |
| |
| var $quotesCatalog = array(); |
| |
| var $insideItem = false; |
| var $tag = ""; |
| var $text = ""; |
| var $image = ""; |
| var $name = ""; |
| var $position = ""; |
| var $org = ""; |
| var $link = ""; |
| |
| |
| function add_quote(& $quote) { |
| $this->quotesCatalog[] = $quote; |
| } |
| |
| |
| function startElement($parser, $tagName, $attribs) |
| { |
| global $insideItem, $tag; |
| if ($insideItem) { |
| $tag = $tagName; |
| } |
| elseif ($tagName = "QUOTE") |
| { |
| $insideItem = TRUE; |
| } |
| |
| } |
| |
| function endElement($parser, $tagName) |
| { |
| global $quotesCatalog, $insideItem; |
| |
| if ($tagName == "QUOTE") |
| { |
| $quotesTemp = array($this->text, $this->image, $this->name, $this->position, $this->org, $this->link); |
| |
| $this->add_quote($quotesTemp); |
| $this->text = ""; |
| $this->image = ""; |
| $this->name = ""; |
| $this->position = ""; |
| $this->org = ""; |
| $this->link = ""; |
| $this->insideitem = FALSE; |
| } |
| } |
| |
| function characterData($parser, $data) |
| { |
| |
| global $insideItem, $tag; |
| |
| if ($insideItem) |
| { |
| switch ($tag) { |
| case "TEXT": |
| $this->text .= $data; |
| break; |
| case "IMAGE": |
| $this->image .= $data; |
| break; |
| case "NAME": |
| $this->name .= $data; |
| break; |
| case "POSITION": |
| $this->position .= $data; |
| break; |
| case "ORG": |
| $this->org .= $data; |
| break; |
| case "LINK": |
| $this->link .= $data; |
| break; |
| } |
| } |
| } |
| |
| } |
| |
| $parser = xml_parser_create(''); |
| $quotesParser = new QuotesParser(); |
| xml_set_object($parser,&$quotesParser); |
| xml_set_element_handler($parser, "startElement", "endElement"); |
| xml_set_character_data_handler($parser, "characterData"); |
| |
| $fp = fopen ("quotes.xml", "r") or die ("File I/O Problem"); |
| while ($data = fread($fp, 4096)) |
| { |
| xml_parse($parser, $data, feof($fp)) or die("XML Error"); |
| } |
| fclose ($fp); |
| xml_parser_free($parser); |
| |
| |
| ?> |