/**
  * get all sections with its name and data from XML file
  * @param simpleXML $simpleXMLObj
  * @return array $xmlSections (name and serialized data)
  */
 private function _getXMLSections($simpleXMLObj)
 {
     $xmlSections = array();
     $sectionsToFilter = array();
     if ($this->_config["filter"]) {
         array_push($sectionsToFilter, 'USBDEVICES', 'CONTROLLERS', 'NETWORKS');
         DataFilter::init();
     }
     foreach ($simpleXMLObj->CONTENT->children() as $section) {
         if (in_array($section->getName(), $sectionsToFilter)) {
             $nofilter = DataFilter::filter($section);
             //if the folder for the filter doesn't exist, delete this element from array.
             if ($nofilter) {
                 foreach ($sectionsToFilter as $fKey => $fValue) {
                     if ($fValue == $nofilter) {
                         unset($sectionsToFilter[$fKey]);
                     }
                 }
             }
         }
         $sectionData = array();
         foreach ($section->children() as $data) {
             $sectionData[$data->getName()] = (string) $data;
         }
         //sectionId initialization, we will affect id after hook createSection return value.
         $serializedSectionData = serialize($sectionData);
         array_push($xmlSections, array("sectionId" => 0, "sectionName" => $section->getName(), "sectionDatawName" => $serializedSectionData . $section->getName(), "sectionData" => $serializedSectionData));
     }
     return $xmlSections;
 }