Neos.ContentRepository/Classes/Domain/Service/ImportExport/NodeImportService.php
protected function parsePropertiesElement(\XMLReader $reader, $currentNodeIdentifier)
    {
        $properties = [];
        $currentProperty = null;
        $currentType = null;
        $currentEncoding = null;
        $currentClassName = null;
        $currentIdentifier = null;

        while ($reader->read()) {
            switch ($reader->nodeType) {
                case \XMLReader::ELEMENT:
                    $currentProperty = $reader->name;
                    $currentType = $reader->getAttribute('__type');
                    $currentIdentifier = $reader->getAttribute('__identifier');
                    $currentClassName = $reader->getAttribute('__classname');
                    $currentEncoding = $reader->getAttribute('__encoding');

                    if ($reader->isEmptyElement) {
                        switch ($currentType) {
                            case 'array':
                                $properties[$currentProperty] = [];
                                break;
                            case 'string':
                                $properties[$currentProperty] = '';
                                break;
                            default:
                                $properties[$currentProperty] = null;
                        }
                        $currentType = null;
                    }

                    // __type="object" __identifier="uuid goes here" __classname="Neos\Media\Domain\Model\ImageVariant" __encoding="json"
                    if ($currentType === 'array') {
                        $value = $this->parseArrayElements($reader, $currentProperty, $currentNodeIdentifier);
                        $properties[$currentProperty] = $value;
                    }
                    break;
                case \XMLReader::END_ELEMENT:
                    if ($reader->name === 'properties') {
                        return $properties;
                    }
                    break;
                case \XMLReader::CDATA:
                case \XMLReader::TEXT:
                    $properties[$currentProperty] = $this->convertElementToValue($reader, $currentType, $currentEncoding, $currentClassName, $currentNodeIdentifier, $currentProperty);
                    break;
            }
        }

        return $properties;
    }
protected function parsePropertiesElement(\XMLReader $reader, $currentNodeIdentifier)
    {
        $properties = [];
        $currentProperty = null;
        $currentType = null;
        $currentEncoding = null;
        $currentClassName = null;
        $currentIdentifier = null;

        while ($reader->read()) {
            switch ($reader->nodeType) {
                case \XMLReader::ELEMENT:
                    $currentProperty = $reader->name;
                    $currentType = $reader->getAttribute('__type');
                    $currentIdentifier = $reader->getAttribute('__identifier');
                    $currentClassName = $reader->getAttribute('__classname');
                    $currentEncoding = $reader->getAttribute('__encoding');

                    if ($reader->isEmptyElement) {
                        switch ($currentType) {
                            case 'array':
                                $properties[$currentProperty] = [];
                                break;
                            case 'string':
                                $properties[$currentProperty] = '';
                                break;
                            default:
                                $properties[$currentProperty] = null;
                        }
                        $currentType = null;
                    }

                    // __type="object" __identifier="uuid goes here" __classname="Neos\Media\Domain\Model\ImageVariant" __encoding="json"
                    if ($currentType === 'array') {
                        $value = $this->parseArrayElements($reader, $currentProperty, $currentNodeIdentifier);
                        $properties[$currentProperty] = $value;
                    }
                    break;
                case \XMLReader::END_ELEMENT:
                    if ($reader->name === 'properties') {
                        return $properties;
                    }
                    break;
                case \XMLReader::CDATA:
                case \XMLReader::TEXT:
                    $properties[$currentProperty] = $this->convertElementToValue($reader, $currentType, $currentEncoding, $currentClassName, $currentNodeIdentifier, $currentProperty);
                    break;
            }
        }

        return $properties;
    }
protected function parsePropertiesElement ( \ XMLReader $ reader , $ currentNodeIdentifier ) { $ properties = [ ] ; $ currentProperty = null ; $ currentType = null ; $ currentEncoding = null ; $ currentClassName = null ; $ currentIdentifier = null ; while ( $ reader -> read ( ) ) { switch ( $ reader -> nodeType ) { case \ XMLReader :: ELEMENT : $ currentProperty = $ reader -> name ; $ currentType = $ reader -> getAttribute ( '__type' ) ; $ currentIdentifier = $ reader -> getAttribute ( '__identifier' ) ; $ currentClassName = $ reader -> getAttribute ( '__classname' ) ; $ currentEncoding = $ reader -> getAttribute ( '__encoding' ) ; if ( $ reader -> isEmptyElement ) { switch ( $ currentType ) { case 'array' : $ properties [ $ currentProperty ] = [ ] ; break ; case 'string' : $ properties [ $ currentProperty ] = '' ; break ; default : $ properties [ $ currentProperty ] = null ; } $ currentType = null ; } // __type="object" __identifier="uuid goes here" __classname="Neos\Media\Domain\Model\ImageVariant" __encoding="json" if ( $ currentType === 'array' ) { $ value = $ this -> parseArrayElements ( $ reader , $ currentProperty , $ currentNodeIdentifier ) ; $ properties [ $ currentProperty ] = $ value ; } break ; case \ XMLReader :: END_ELEMENT : if ( $ reader -> name === 'properties' ) { return $ properties ; } break ; case \ XMLReader :: CDATA : case \ XMLReader :: TEXT : $ properties [ $ currentProperty ] = $ this -> convertElementToValue ( $ reader , $ currentType , $ currentEncoding , $ currentClassName , $ currentNodeIdentifier , $ currentProperty ) ; break ; } } return $ properties ; }
Parses the content of the properties-tag and returns the properties as an array
'property name' => property value

@param \XMLReader $reader reader positioned just after an opening properties-tag
@param string $currentNodeIdentifier
@return array the properties
Parses the content of the properties - tag and returns the properties as an array property name = > property value