original_string: protected static function DOMNodeValue(DOMNode $node, $associative = false, $attributes = false)
      {
          // Return the value immediately when we're dealing with a leaf
          // node without attributes or we simply don't want them included
          if (static::DOMNodeChildCount($node) == 0 && ($node->hasAttributes() === false || $attributes === false)) {
              return $node->nodeValue;
          }
  
          $children = array();
  
          if ($node->hasAttributes() && $attributes) {
              $children['@'] = static::DOMNodeAttributes($node);
          }
  
          foreach ($node->childNodes as $child) {
              // Skip text nodes containing whitespace
              if ($child instanceof DOMText && $child->isWhitespaceInElementContent()) {
                  continue;
              }
  
              if (static::DOMNodeChildCount($child) > 0) {
                  $value = static::DOMNodeValue($child, $associative);
              } else {
                  $value = $child->nodeValue;
              }
  
              if ($associative) {
                  $children[$child->nodeName][] = $value;
              } else {
                  $children[] = $value;
              }
          }
  
          return $children;
      }
code: protected static function DOMNodeValue(DOMNode $node, $associative = false, $attributes = false)
      {
          // Return the value immediately when we're dealing with a leaf
          // node without attributes or we simply don't want them included
          if (static::DOMNodeChildCount($node) == 0 && ($node->hasAttributes() === false || $attributes === false)) {
              return $node->nodeValue;
          }
  
          $children = array();
  
          if ($node->hasAttributes() && $attributes) {
              $children['@'] = static::DOMNodeAttributes($node);
          }
  
          foreach ($node->childNodes as $child) {
              // Skip text nodes containing whitespace
              if ($child instanceof DOMText && $child->isWhitespaceInElementContent()) {
                  continue;
              }
  
              if (static::DOMNodeChildCount($child) > 0) {
                  $value = static::DOMNodeValue($child, $associative);
              } else {
                  $value = $child->nodeValue;
              }
  
              if ($associative) {
                  $children[$child->nodeName][] = $value;
              } else {
                  $children[] = $value;
              }
          }
  
          return $children;
      }
code_tokens: protected static function DOMNodeValue ( DOMNode $ node , $ associative = false , $ attributes = false ) { // Return the value immediately when we're dealing with a leaf // node without attributes or we simply don't want them included if ( static :: DOMNodeChildCount ( $ node ) == 0 && ( $ node -> hasAttributes ( ) === false || $ attributes === false ) ) { return $ node -> nodeValue ; } $ children = array ( ) ; if ( $ node -> hasAttributes ( ) && $ attributes ) { $ children [ '@' ] = static :: DOMNodeAttributes ( $ node ) ; } foreach ( $ node -> childNodes as $ child ) { // Skip text nodes containing whitespace if ( $ child instanceof DOMText && $ child -> isWhitespaceInElementContent ( ) ) { continue ; } if ( static :: DOMNodeChildCount ( $ child ) > 0 ) { $ value = static :: DOMNodeValue ( $ child , $ associative ) ; } else { $ value = $ child -> nodeValue ; } if ( $ associative ) { $ children [ $ child -> nodeName ] [ ] = $ value ; } else { $ children [ ] = $ value ; } } return $ children ; }
docstring: Get the DOMNode value
  
  @static
  @param   DOMNode $node
  @param   bool    $associative Return associative array?
  @param   bool    $attributes  Include node attributes?
  @return  mixed
docstring_tokens: Get the DOMNode value