<?php
function compact_($xmlsr,$indent){
    if($xmlsr->nodeType==XMLReader::ELEMENT){
        print $xmlsr->name."[";
        $indent.=str_repeat(' ',strlen($xmlsr->name)+1);
        $first=true;
        if($xmlsr->hasAttributes){
            while($xmlsr->moveToNextAttribute()){
                if(!$first)print "\n$indent";
                print "@".$xmlsr->name."[".$xmlsr->value."]";
                $first=false;
            }
        } // Warning: PHP does not return an END_ELEMENT on a empty tag
        if(!$xmlsr->isEmptyElement) 
            while(true){
                do {$xmlsr->read();} 
                while ($xmlsr->nodeType==XMLReader::SIGNIFICANT_WHITESPACE);
                if($xmlsr->nodeType==XMLReader::END_ELEMENT)break;
                if($first)$first=false;
                else print "\n$indent";
                compact_($xmlsr,$indent);
            }
        print "]";
    } else if ($xmlsr->nodeType==XMLReader::TEXT)
        print preg_replace("/ *\n? +/"," ",trim($xmlsr->value));
    else {
        die("STRANGE NODE:".$xmlsr->nodeType."\n");
    }
}

$xmlsr = new XMLReader();
$xmlsr->open("php://stdin");
$xmlsr->setParserProperty(XMLReader::SUBST_ENTITIES,true);
while ($xmlsr->nodeType!=XMLReader::ELEMENT)$xmlsr->read();
compact_($xmlsr,"");
print "\n";
?>