private function parse_list(ListShape $shape, \SimpleXMLElement $value) { $target = []; $member = $shape->getMember(); if (!$shape['flattened']) { $value = $value->{$member['locationName'] ?: 'member'}; } foreach ($value as $v) { $target[] = $this->dispatch($member, $v); } return $target; }
protected function format_list(ListShape $shape, array $value, $prefix, &$query) { // Handle empty list serialization if (!$value) { $query[$prefix] = false; } else { $items = $shape->getMember(); foreach ($value as $k => $v) { $this->format($items, $v, $prefix . '.' . ($k + 1), $query); } } }
protected function format_list(ListShape $shape, array $value, $prefix, &$query) { // Handle empty list serialization if (!$value) { $query[$prefix] = ''; return; } $items = $shape->getMember(); if (!$this->isFlat($shape)) { $locationName = $shape->getMember()['locationName'] ?: 'member'; $prefix .= ".{$locationName}"; } elseif ($name = $this->queryName($items)) { $parts = explode('.', $prefix); $parts[count($parts) - 1] = $name; $prefix = implode('.', $parts); } foreach ($value as $k => $v) { $this->format($items, $v, $prefix . '.' . ($k + 1), $query); } }
private function add_list(ListShape $shape, $name, array $value, XMLWriter $xml) { $items = $shape->getMember(); if ($shape['flattened']) { $elementName = $name; } else { $this->startElement($shape, $name, $xml); $elementName = $items['locationName'] ?: 'member'; } foreach ($value as &$v) { $this->format($items, $elementName, $v, $xml); } if (!$shape['flattened']) { $xml->endElement(); } }