private function doProcessTheAboutElement(array $values) { foreach ($values as $key => $value) { switch ($key) { case '@id': $this->filteredRecord->set('url', $value); break; case '@type': $this->filteredRecord->set('type', is_string($value) ? array($value) : $value); break; case 'datePublished': $this->filteredRecord->set('pubdate', $value); break; case 'description': $this->collectAbstract($value); break; case 'bookEdition': $this->filteredRecord->set('edition', $value); break; case 'name': $this->filteredRecord->set('title', is_array($value) ? $value['@value'] : $value); break; case 'genre': $this->collectGenre($value); break; } } }
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')); } }
public function testRedactedFields() { $instance = new FilteredRecord(); $instance->setRedactedFields(array('bar')); $instance->set('bar', 42); $this->assertFalse($instance->has('bar')); $instance->append('bar', 'foobar'); $this->assertFalse($instance->has('bar')); $this->assertEmpty($instance->getRecordFields()); }
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); }
private function doProcessElements($record) { foreach ($record as $key => $value) { switch ($key) { case 'title': $this->filteredRecord->set('title', $value); break; case 'subtitle': $this->filteredRecord->set('subtitle', $value); break; case 'url': $this->filteredRecord->set('url', $value); break; case 'publishers': $this->filteredRecord->set('publisher', end($value)); break; case 'publish_date': $this->filteredRecord->set('pubdate', $value); break; case 'number_of_pages': $this->filteredRecord->set('pages', $value); break; case 'classifications': $this->collectClassifications($value); break; case 'identifiers': $this->collectIdentifiers($value); break; case 'subject_places': case 'subjects': $this->collectSubjects($value); break; case 'authors': $this->collectAuthors($value); break; case 'cover': $this->filteredRecord->set('cover', end($value)); break; } } }
/** * @since 0.1 * * @param FilteredRecord $filteredRecord * * @return ResponseParser */ public function newNcbiPubMedCentralFilteredHttpResponseParser(FilteredRecord $filteredRecord) { $filteredRecord->set('ncbi-dbtype', 'pmc'); return new NcbiPubMedFilteredHttpResponseParser($this->httpRequest, $filteredRecord); }