/** * @see CultureFeed_Cdb_IElement::parseFromCdbXml(SimpleXMLElement $xmlElement) * @return CultureFeed_Cdb_Item_Actor */ public static function parseFromCdbXml(SimpleXMLElement $xmlElement) { if (empty($xmlElement->categories)) { throw new CultureFeed_Cdb_ParseException('Categories missing for actor element'); } if (empty($xmlElement->actordetails)) { throw new CultureFeed_Cdb_ParseException('Actordetails missing for actor element'); } $actor = new self(); $actor_attributes = $xmlElement->attributes(); if (isset($actor_attributes['cdbid'])) { $actor->setCdbId((string) $actor_attributes['cdbid']); } if (isset($actor_attributes['externalid'])) { $actor->setExternalId((string) $actor_attributes['externalid']); } if (isset($actor_attributes['availablefrom'])) { $actor->setAvailableFrom((string) $actor_attributes['availablefrom']); } if (isset($actor_attributes['availableto'])) { $actor->setAvailableTo((string) $actor_attributes['availableto']); } if (isset($actor_attributes['createdby'])) { $actor->setCreatedBy((string) $actor_attributes['createdby']); } if (isset($actor_attributes['creationdate'])) { $actor->setCreationDate((string) $actor_attributes['creationdate']); } if (isset($actor_attributes['lastupdated'])) { $actor->setLastUpdated((string) $actor_attributes['lastupdated']); } if (isset($actor_attributes['lastupdatedby'])) { $actor->setLastUpdatedBy((string) $actor_attributes['lastupdatedby']); } if (isset($actor_attributes['owner'])) { $actor->setOwner((string) $actor_attributes['owner']); } $actor->setDetails(CultureFeed_Cdb_Data_ActorDetailList::parseFromCdbXml($xmlElement->actordetails)); // Set categories $actor->setCategories(CultureFeed_Cdb_Data_CategoryList::parseFromCdbXml($xmlElement->categories)); // Set contact information. if (!empty($xmlElement->contactinfo)) { $actor->setContactInfo(CultureFeed_Cdb_Data_ContactInfo::parseFromCdbXml($xmlElement->contactinfo)); } // Set the keywords. self::parseKeywords($xmlElement, $actor); // Set the weekscheme. if (!empty($xmlElement->weekscheme)) { $actor->setWeekScheme(CultureFeed_Cdb_Data_Calendar_Weekscheme::parseFromCdbXml($xmlElement->weekscheme)); } return $actor; }
/** * This class method is used to construct a ResourceDescriptor object by providing the XML for that object. * * @param string $xml - XML String defining ResourceDescriptor * @return ResourceDescriptor */ public static function createFromXML($xml) { $sxi = new \SimpleXMLIterator($xml); $temp = new self((string) $sxi->attributes()->name, (string) $sxi->attributes()->wsType, (string) $sxi->attributes()->uriString, (string) $sxi->attributes()->isNew); $desc = !empty($sxi->description) ? (string) $sxi->description : null; $label = !empty($sxi->label) ? (string) $sxi->label : null; $date = !empty($sxi->creationDate) ? (string) $sxi->creationDate : null; $temp->setLabel($label); $temp->setDescription($desc); $temp->setCreationDate($date); foreach ($sxi->resourceDescriptor as $nestRd) { $temp->children[] = ResourceDescriptor::createFromXML($nestRd->asXML()); } foreach ($sxi->resourceProperty as $prop) { $temp->properties[] = ResourceProperty::createFromXML($prop->asXML()); } return $temp; }