/** * Parse the content of the periodo pubblicazione field. * * @param $td the table cell * * @return an array of one or two dates with no trailing spaces. */ public static function parseInizioFinePubblicazione($td) { //remove all whitespaces $inizio_fine_pubblicazione = str_replace(' ', '', $td->textContent); $l = strlen($inizio_fine_pubblicazione); if ($l < 10 || $l > 20) { throw new Exception("Invalid dates {$inizio_fine_pubblicazione}"); } //just the start date if ($l == 10) { return array(AlbojCityGovParseUtils::parseDate($inizio_fine_pubblicazione)); } //both start and end time $inizio_pubblicazione = substr($inizio_fine_pubblicazione, 0, 10); $fine_pubblicazione = substr($inizio_fine_pubblicazione, 10); return array(AlbojCityGovParseUtils::parseDate($inizio_pubblicazione), AlbojCityGovParseUtils::parseDate($fine_pubblicazione)); }
/** * Generate an AlbojCityGovEntry from a table row */ public function parse($row) { $entry = new AlbojCityGovEntry(); $cells = $row->getElementsByTagName('td'); $anno_numero_registro = AlbojCityGovParseUtils::parseTwoLinesField($cells->item(0)->textContent); $entry->anno_registro = $anno_numero_registro[0]; $entry->numero_registro = $anno_numero_registro[1]; $tipo_sottotipo = AlbojCityGovParseUtils::parseTwoLinesField($cells->item(1)->textContent); $entry->tipo_atto = $tipo_sottotipo[0]; $entry->sottotipo_atto = $tipo_sottotipo[1]; $entry->oggetto = $cells->item(2)->textContent; $inizio_fine_pubblicazione = AlbojCityGovParseUtils::parseInizioFinePubblicazione($cells->item(3)); $entry->data_inizio_pubblicazione = $inizio_fine_pubblicazione[0]; if (count($inizio_fine_pubblicazione) > 1) { $entry->data_fine_pubblicazione = $inizio_fine_pubblicazione[1]; } $entry->url = AlbojCityGovParseUtils::parseURL($cells->item(4)); return $entry; }