Files
myep/src/BusProNet/XmlParser/PickupsParser.php
T

37 lines
1.3 KiB
PHP

<?php
namespace App\BusProNet\XmlParser;
use App\BusProNet\Model\Pickup;
use Symfony\Component\DomCrawler\Crawler;
class PickupsParser extends AbstractParser
{
public function parse(Crawler $result): array
{
$pickups = [];
$result->each(function (Crawler $node) use (&$pickups) {
$pickupId = (int) $node->attr('idzustieg');
$pickupDate = $node->attr('datum');
$pickupTime = $node->attr('zeit');
$price = $node->attr('preis') ? $this->stringToFloat($node->attr('preis')) : null;
$pickup = new Pickup();
$pickup->id = $pickupId;
$pickup->code = $node->attr('code');
$pickup->city = $this->getStringOrNullValue($node->filterXPath('//ort'));
$pickup->postalCode = $this->getStringOrNullValue($node->filterXPath('//plz'));
$pickup->street = $this->getStringOrNullValue($node->filterXPath('//strasse'));
$pickup->time = $this->stringToDateTime($pickupDate.' '.$pickupTime);
$pickup->price = $price;
$mapping = $this->stringToArray($node->attr('zuordnung'));
$pickup->mapping = array_map(function ($index) { return (int) $index - 1; }, $mapping);
$pickups[$pickupId] = $pickup;
});
return $pickups;
}
}