Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. XmlEncoder.php

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\Encoder

Code

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;
}
RSS feed
Powered by Drupal