function tripal_pub_PMID_parse_date

2.x tripal_pub.PMID.inc tripal_pub_PMID_parse_date($xml, $element_name)
3.x tripal_chado.pub_importer_PMID.inc tripal_pub_PMID_parse_date($xml, $element_name)
1.x PMID.inc tripal_pub_PMID_parse_date($xml, $element_name)
1 call to tripal_pub_PMID_parse_date()
tripal_pub_PMID_parse_journal_issue in tripal_pub/includes/importers/PMID.inc

File

tripal_pub/includes/importers/PMID.inc, line 730
Tripal Pub PubMed Interface

Code

function tripal_pub_PMID_parse_date($xml, $element_name) {
  $date = array();

  while ($xml->read()) {
    $element = $xml->name;

    if ($xml->nodeType == XMLReader::END_ELEMENT and $element == $element_name) {
      // if we're at the </$element_name> then we're done
      return $date;
    }
    if ($xml->nodeType == XMLReader::ELEMENT) {
      switch ($element) {
        case 'Year':
          $xml->read();
          $date['year'] = $xml->value;
          break;
        case 'Month':
          $xml->read();
          $month =
            $date['month'] = $xml->value;
          break;
        case 'Day':
          $xml->read();
          $date['day'] = $xml->value;
          break;
        case 'MedlineDate':
          // the medline date is when the date cannot be broken into distinct month day year.
          $xml->read();
          $date['year'] = preg_replace('/^(\d{4}).*$/', '\1', $xml->value);
          $date['medline'] = $xml->value;
          break;
        default:
          break;
      }
    }
  }
}