Location: PHPKode > scripts > phpchartPlus > phpchartplus/Sources/XMLData_Strategy.php
<?php

/*
**************************************************
Class: XMLData_Strategy.php
**************************************************
Author: Tsiavos Chris <hide@address.com>
Date: October 2004
**************************************************/

/**
*Includes the DataStrategy Interface
*/
require_once("DataStrategy_Interface.php");

/**
*Strategy for importing chart data from XML files
*@author Tsiavos Chris <hide@address.com>
*@uses SimpleXML Extension
*@license http://opensource.org/licenses/gpl-license.php GNU Public License
*/

class XMLData_Strategy implements DataStrategy_Interface {

	private $XMLHandler;	
	
	public function initialize($params=NULL) {
		
		$filename=$params["filename"];
		
		if (!file_exists($filename))
			throw new DataStrategy_Exception("DataStrategy: Filename $filename not found");
	
		$this->XMLHandler=simplexml_load_file($filename);
	}
	
	public function perform($params=NULL) {
		$Groups=array();
	
		foreach ($this->XMLHandler->group as $group) {
		
			array_push($Groups,new Group());
			
			$CurrentGroup=count($Groups)-1;
			
			$Groups[$CurrentGroup]->GroupName=(string)$group['name'];
			
			foreach ($group->item as $item) {
			
				array_push($Groups[$CurrentGroup]->GroupItems,new GroupItem());
						
				$CurrentGroupItem=count($Groups[$CurrentGroup]->GroupItems)-1;	
				
				$Groups[$CurrentGroup]->GroupItems[$CurrentGroupItem]->ItemName=(string)$item->name;
				$Groups[$CurrentGroup]->GroupItems[$CurrentGroupItem]->ItemValue=(float)$item->value;
			}
		
		}
		
		return $Groups;
	}	
	
	public function finalize() {
		return;
	}
}
Return current item: phpchartPlus