function parse(string $zen) { if (strlen($zen) === 0) { throw new \InvalidArgumentException('htmlgen\\html expects a non-empty string'); } else { return \htmlgen\element\element(parseTag($zen), ['id' => parseId($zen), 'class' => parseClass($zen)]); } }
function parseAlbum($n) { $artists = array(); $ids = array(); $album = array('uri' => $n->getAttribute('href'), 'name' => null, 'artists' => array(), 'ids' => array(), 'popularity' => 0.0, 'isVariousArtists' => false, 'availability' => (object) array('unrestricted' => false, 'territories' => array())); $nl = $n->childNodes; for ($i = 0; $i < $nl->length; $i++) { $n2 = $nl->item($i); if ($n2->nodeType === XML_ELEMENT_NODE) { switch ($n2->nodeName) { case 'name': $album['name'] = $n2->nodeValue; break; case 'artist': $artist = parseArtist($n2); $artists[] = $artist; if ($album['isVariousArtists'] === false) { $album['isVariousArtists'] = $artist->name === 'Various Artists' ? true : false; } break; case 'id': $ids[] = parseId($n2); break; case 'popularity': $album['popularity'] = floatval($n2->nodeValue) * 100; break; case 'availability': $album['availability'] = parseAvailability($n2); break; } } } $album['artists'] = $artists; $album['ids'] = $ids; return (object) $album; }