Jarves\Configuration\Model::extractExtraNodes PHP Method

extractExtraNodes() public method

public extractExtraNodes ( DOMNode $child, array &$options )
$child DOMNode
$options array
    public function extractExtraNodes(\DOMNode $child, array &$options)
    {
        $key = $child->attributes->getNamedItem('key');
        $key = $key ? $key->nodeValue : ('item' === $child->nodeName ? null : $child->nodeName);
        $valueText = null;
        $valueNodes = array();
        foreach ($child->childNodes as $element) {
            if ('#text' === $element->nodeName) {
                $valueText = $element->nodeValue;
            } else {
                if ('#' !== substr($element->nodeName, 0, 1)) {
                    $this->extractExtraNodes($element, $valueNodes);
                }
            }
        }
        $value = 0 == count($valueNodes) ? $valueText : $valueNodes;
        if ($key) {
            $options[$key] = $value;
        } else {
            $options[] = $value;
        }
    }