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()); }
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); } } }