throw new Exception('Invalid node name.');
        }
        $nodeCounter = 0;
        foreach ($this->xml as $node) {
            $nodeCounter++;
        }
        return $nodeCounter;
    }
}
//get event information from XML and store information in array. Filter by host name
$xmlfile = "../../../xml/itproducts/index.xml";
try {
    // instantiate new 'XMLParser' object
    $xmlPar = new XMLParser($xmlfile);
    // fetch nodes as array of objects
    $nodes = $xmlPar->fetchNodesAsObjects();
    // display nodes
    $data = array();
    foreach ($nodes as $node) {
        $bits = explode(",", (string) $node->productcategory);
        $data[] = array("Name" => (string) $node->productname, "Availability" => (string) $node->productavailability, "Version" => (string) $node->productversion, "Description" => (string) $node->productdescription, "MainDescription" => (string) $node->productdescription, "ProductID" => (string) $node->productid, "Sub-category" => trim($bits[1]));
    }
} catch (Exception $e) {
    echo $e->getMessage();
    exit;
}
$category = array();
if (is_array($data)) {
    $i = 0;
    foreach ($data as $key => $array) {
        $i++;