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); } }