code: private function attributes($node)
      {
          if (! preg_match('|<[^ ]+\s(.*?)/?>|s', $node->value, $first_tag_contents)) {
              return array();
          }
          $attributes = array();
          preg_match_all('/\S+\s*=\s*\'[^\']*\'|(\S+\s*=\s*"[^"]*")|([^ =]+\s*=\s*[^ "\']+?)|[^ "\']+/', $first_tag_contents[1], $matches);
          foreach ($matches[0] as $unparsed) {
              $attributes = $this->mergeAttribute($attributes, $unparsed);
          }
  
          return $attributes;
      }
docs: Convenience method for collecting all the attributes of a tag.
  Not sure why Tidy does not have this.
  
  @param object $node      Tidy XML node.
  
  @return array            Hash of attribute strings.