/** * @param SimpleXMLElement $xml * * @return Product */ public static function createFromXML(SimpleXMLElement $xml) { /* <product default="true" name="bpack 24/7"> <price price20To30="750" price10To20="650" price5To10="550" price2To5="450" priceLessThan2="350" countryIso2Code="BE"/> <option visiblity="NOT_VISIBLE_BY_CONSUMER_OPTIONAL" price="0" name="Saturday"/> <option visiblity="NOT_VISIBLE_BY_CONSUMER_OPTIONAL" price="0" name="Info "Distributed""/> <option visiblity="NOT_VISIBLE_BY_CONSUMER_OPTIONAL" price="0" name="Insurance"/> </product> */ $attributes = $xml->attributes(); $children = $xml->children(); $product = new self(); $product->setDefault($attributes['default'] == 'true'); $product->setName($attributes['name']); if (isset($children->price)) { foreach ($children->price as $priceXml) { $product->addPrice(Price::createFromXML($priceXml)); } } if (isset($children->option)) { foreach ($children->option as $optionXml) { $product->addOption(Option::createFromXML($optionXml)); } } return $product; }