public function testFromXml()
    {
        $buf = <<<XML
    <xml>
      <title>Adrian (Mich.)</title>
      <subjec>Adrian High School (Adrian, Mich.); schools</subjec>
      <descri>High School Building in Adrian (Mich.); c. 1920.</descri>
      <format>Document</format>
      <fullrs></fullrs>
      <find>9876.cpd</find>
      <dmaccess></dmaccess>
      <dmimage></dmimage>
      <dmcreated>2009-08-28</dmcreated>
      <dmmodified>2009-08-28</dmmodified>
      <dmoclcno></dmoclcno>
      <dmrecord>9876</dmrecord>
    </xml>
XML;
        $co = CompoundObject::from_xml('aaa111', '9876', $buf);
        $this->assertEquals('aaa111', $co->alias);
        $this->assertEquals('9876', $co->itnum);
        $this->assertEquals(2, $co->num_items());
    }
Пример #2
0
 public static function create_from_xml($alias, $itnum, $subitnum, $xmlbuffer)
 {
     $xml = new SimpleXMLElement($xmlbuffer);
     $xmlnode = ItemFactory::node($xml, '//xml');
     $format = (string) $xmlnode->format;
     $extension = Item::extension((string) $xmlnode->find);
     #some items have no format
     $is_image = array_search($extension, Item::image_extensions());
     if ($extension == 'cpd') {
         // $format == 'Document' ||  -- inconsistent
         $compound_object = CompoundObject::from_xml($alias, $itnum, $xmlbuffer);
         if ($subitnum != NULL) {
             return $compound_object->item_by_itnum($subitnum);
         } else {
             return $compound_object->first_item();
         }
     } else {
         if ($format == 'Image' || $is_image) {
             return Image::from_xml($alias, $itnum, $xmlbuffer);
         } else {
             return Item::from_xml($alias, $itnum, $xmlbuffer);
         }
     }
 }