/**
  * 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;
 }