private function initializeFrom(XMLReader $reader)
 {
     if ($reader->nodeType !== XMLReader::ELEMENT) {
         $node = new XMLReaderNode($reader);
         throw new RuntimeException(sprintf('Reader must be at an XMLReader::ELEMENT, is XMLReader::%s given.', $node->getNodeTypeName()));
     }
     $this->name_ = $reader->name;
     $this->attributes_ = parent::getAttributes()->getArrayCopy();
 }
 /**
  * @param XMLReader $reader
  *
  * @return string
  */
 public static function readerNode(XMLReader $reader)
 {
     switch ($reader->nodeType) {
         case XMLREADER::NONE:
             return '%(0)%';
         case XMLReader::ELEMENT:
             return XMLBuild::startTag($reader->name, new XMLAttributeIterator($reader));
         default:
             $node = new XMLReaderNode($reader);
             $nodeTypeName = $node->getNodeTypeName();
             $nodeType = $reader->nodeType;
             return sprintf('%%%s (%d)%%', $nodeTypeName, $nodeType);
     }
 }