استخراج اطلاعات کتاب از FedoraObject در Islandora

برای تعریف Solution Pack جدید در Islandora لازم است هوک زیر پیاده سازی شود:

funtion hook_islandora_view_object($object, $page_number, $page_size);

در این هوک $object همان FedoraObject مورد نظر است. در صورتی که dsid مورد نظر MODS باشد. قطعه کد زیر مقدار MODS این Object را گرفته و با توجه به xmlns آن و کتابخانه simplexml و xpath مقادیر مورد نظر را استخراج می کند.

$mods_xml = simplexml_load_string($object['MODS']->content);
$mods_xml->registerXPathNamespace('mods', 'http://www.loc.gov/mods/v3');
$locations = $mods_xml->xpath('//mods:location');
foreach ($locations as $location) {
  $barcode = (string) @$location->xpath(".//mods:note[@type='barcode']")[0];
  $vol = (string) @$location->xpath(".//mods:enumerationAndChronology[@unitType='1']")[0];
  $part = (string) @$location->xpath(".//mods:note[@displayLabel='part no.']")[0];
}

نکته 1: در صورتی که xmlns خاصی برای MODS تعریف شده باشد باید آن را توسط registerXPathNamespace رجیستر کنید.

نکته 2: در xPath استفاده شده به کوئری Relative دوم برای گرفتن مقادیر دقت کنید.

برچسب ها: 
درخت مرجع: 

افزودن نظر جدید