Exemplo n.º 1
0
 private function findElementsForPubMedCentral(DOMDocument $domDocument)
 {
     foreach ($domDocument->getElementsByTagName('pub-date') as $item) {
         foreach ($item->getElementsByTagName('year') as $i) {
             $this->filteredRecord->set('year', $i->nodeValue);
         }
     }
     foreach ($domDocument->getElementsByTagName('abstract') as $item) {
         $this->filteredRecord->set('abstract', trim($item->nodeValue));
     }
     foreach ($domDocument->getElementsByTagName('article') as $item) {
         $this->filteredRecord->set('type', $item->getAttribute('article-type'));
     }
 }
Exemplo n.º 2
0
 private function collectAuthors($name, array $values)
 {
     $authors = array();
     foreach ($values as $key => $value) {
         // Literal set by dataset
         $familyName = isset($value['literal']) ? $value['literal'] : $value['family'];
         // Part of the auto generated key
         if ($key == 0) {
             $this->filteredRecord->set('reference', strtolower($familyName));
         }
         $authors[] = (isset($value['given']) ? $value['given'] . ' ' : '') . $familyName;
     }
     $this->filteredRecord->set($name, $authors);
 }
Exemplo n.º 3
0
 private function collectIdentifiers($value)
 {
     foreach ($value as $id => $v) {
         if ($id === 'openlibrary') {
             $id = 'olid';
         }
         if ($id === 'isbn_13' || $id === 'isbn_10') {
             $id = 'isbn';
         }
         // No commercial provider
         if (!in_array($id, array('isbn', 'olid', 'oclc', 'lccn'))) {
             continue;
         }
         $this->filteredRecord->append($id, end($v));
     }
 }
Exemplo n.º 4
0
 private function collectAbstract($values)
 {
     foreach ($values as $key => $value) {
         if (is_array($value)) {
             $this->collectAbstract($value);
             continue;
         }
         // This is pure guess work since the description list is
         // an unordered list with no indication of what type of
         // content is stored, use `--` is indicator that is not
         // the abstract
         if (strpos($value, '--') !== false) {
             continue;
         }
         if ($key === '@value') {
             $this->filteredRecord->append('abstract', $value);
         }
     }
 }
Exemplo n.º 5
0
 public function testUnknownRecordKeyFieldThrowsException()
 {
     $instance = new FilteredRecord();
     $this->setExpectedException('InvalidArgumentException');
     $instance->get('foo');
 }
 /**
  * @since 0.1
  *
  * @param FilteredRecord $filteredRecord
  *
  * @return ResponseParser
  */
 public function newNcbiPubMedCentralFilteredHttpResponseParser(FilteredRecord $filteredRecord)
 {
     $filteredRecord->set('ncbi-dbtype', 'pmc');
     return new NcbiPubMedFilteredHttpResponseParser($this->httpRequest, $filteredRecord);
 }