function XmlEncoder::parseXmlAttributes
Parse the input DOMNode attributes into an array.
2 calls to XmlEncoder::parseXmlAttributes()
- XmlEncoder::decode in vendor/
symfony/ serializer/ Encoder/ XmlEncoder.php - Decodes a string into PHP data.
- XmlEncoder::parseXml in vendor/
symfony/ serializer/ Encoder/ XmlEncoder.php - Parse the input DOMNode into an array or a string.
File
-
vendor/
symfony/ serializer/ Encoder/ XmlEncoder.php, line 257
Class
- XmlEncoder
- @author Jordi Boggiano <j.boggiano@seld.be> @author John Wards <jwards@whiteoctober.co.uk> @author Fabian Vogler <fabian@equivalence.ch> @author Kévin Dunglas <dunglas@gmail.com> @author Dany Maillard…
Namespace
Symfony\Component\Serializer\EncoderCode
private function parseXmlAttributes(\DOMNode $node, array $context = []) : array {
if (!$node->hasAttributes()) {
return [];
}
$data = [];
$typeCastAttributes = (bool) ($context[self::TYPE_CAST_ATTRIBUTES] ?? $this->defaultContext[self::TYPE_CAST_ATTRIBUTES]);
foreach ($node->attributes as $attr) {
if (!is_numeric($attr->nodeValue) || !$typeCastAttributes || isset($attr->nodeValue[1]) && '0' === $attr->nodeValue[0] && '.' !== $attr->nodeValue[1]) {
$data['@' . $attr->nodeName] = $attr->nodeValue;
continue;
}
if (false !== ($val = filter_var($attr->nodeValue, \FILTER_VALIDATE_INT))) {
$data['@' . $attr->nodeName] = $val;
continue;
}
$data['@' . $attr->nodeName] = (double) $attr->nodeValue;
}
return $data;
}