lib/Braintree/Xml/Parser.php
private static function _nodeToArray($node)
    {
        $type = null;
        if ($node instanceof DOMElement) {
            $type = $node->getAttribute('type');
        }

        switch($type) {
        case 'array':
            $array = [];
            foreach ($node->childNodes as $child) {
                $value = self::_nodeToValue($child);
                if ($value !== null) {
                    $array[] = $value;
                }
            }
            return $array;
        case 'collection':
            $collection = [];
            foreach ($node->childNodes as $child) {
                $value = self::_nodetoValue($child);
                if ($value !== null) {
                    if (!isset($collection[$child->nodeName])) {
                        $collection[$child->nodeName] = [];
                    }
                    $collection[$child->nodeName][] = self::_nodeToValue($child);
                }
            }
            return $collection;
        default:
            $values = [];
            if ($node->childNodes->length === 1 && $node->childNodes->item(0) instanceof DOMText) {
                return $node->childNodes->item(0)->nodeValue;
            } else {
                foreach ($node->childNodes as $child) {
                    if (!$child instanceof DOMText) {
                        $values[$child->nodeName] = self::_nodeToValue($child);
                    }
                }
                return $values;
            }
        }
    }
private static function _nodeToArray($node)
    {
        $type = null;
        if ($node instanceof DOMElement) {
            $type = $node->getAttribute('type');
        }

        switch($type) {
        case 'array':
            $array = [];
            foreach ($node->childNodes as $child) {
                $value = self::_nodeToValue($child);
                if ($value !== null) {
                    $array[] = $value;
                }
            }
            return $array;
        case 'collection':
            $collection = [];
            foreach ($node->childNodes as $child) {
                $value = self::_nodetoValue($child);
                if ($value !== null) {
                    if (!isset($collection[$child->nodeName])) {
                        $collection[$child->nodeName] = [];
                    }
                    $collection[$child->nodeName][] = self::_nodeToValue($child);
                }
            }
            return $collection;
        default:
            $values = [];
            if ($node->childNodes->length === 1 && $node->childNodes->item(0) instanceof DOMText) {
                return $node->childNodes->item(0)->nodeValue;
            } else {
                foreach ($node->childNodes as $child) {
                    if (!$child instanceof DOMText) {
                        $values[$child->nodeName] = self::_nodeToValue($child);
                    }
                }
                return $values;
            }
        }
    }
private static function _nodeToArray ( $ node ) { $ type = null ; if ( $ node instanceof DOMElement ) { $ type = $ node -> getAttribute ( 'type' ) ; } switch ( $ type ) { case 'array' : $ array = [ ] ; foreach ( $ node -> childNodes as $ child ) { $ value = self :: _nodeToValue ( $ child ) ; if ( $ value !== null ) { $ array [ ] = $ value ; } } return $ array ; case 'collection' : $ collection = [ ] ; foreach ( $ node -> childNodes as $ child ) { $ value = self :: _nodetoValue ( $ child ) ; if ( $ value !== null ) { if ( ! isset ( $ collection [ $ child -> nodeName ] ) ) { $ collection [ $ child -> nodeName ] = [ ] ; } $ collection [ $ child -> nodeName ] [ ] = self :: _nodeToValue ( $ child ) ; } } return $ collection ; default : $ values = [ ] ; if ( $ node -> childNodes -> length === 1 && $ node -> childNodes -> item ( 0 ) instanceof DOMText ) { return $ node -> childNodes -> item ( 0 ) -> nodeValue ; } else { foreach ( $ node -> childNodes as $ child ) { if ( ! $ child instanceof DOMText ) { $ values [ $ child -> nodeName ] = self :: _nodeToValue ( $ child ) ; } } return $ values ; } } }
Converts a node to an array of values or nodes

@param DOMNode @node
@return mixed
Converts a node to an array of values or nodes