rendered paste body<?php$in = new XMLReader();$out = new XMLWriter();$out->openURI('php://STDOUT');$out->startDocument('1.0', 'UTF-8');$out->startElement('metalink');$out->writeAttribute('version', '3.0');$out->writeAttribute('generator', 'My own script, powered by PHP '.PHP_VERSION);$out->writeAttribute('xmlns', 'http://www.metalinker.org/');$out->startElement('files');$out->startElement('file');$out->writeAttribute('name', 'eclipse-java-europa-fall-win32.zip');$out->writeElement('size', '82764995');$out->writeElement('os', 'Windows-x86');$in->open('http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/20070927/eclipse-java-europa-fall-win32.zip&format=xml&protocol=http');function parseMirrorList(XMLReader $in, XMLWriter $out) { $out->startElement('resources'); while ($in->read()) { if ($in->nodeType == XMLReader::END_ELEMENT && $in->name == 'mirrors') { break; } if ($in->nodeType != XMLReader::ELEMENT || $in->name != 'mirror') { continue; } $out->startElement('url'); $url = $in->getAttribute('url'); $out->writeAttribute('type', parse_url($url, PHP_URL_SCHEME)); $out->text($url); $out->endElement(); } $out->endElement();}while ($in->read()) { if ($in->nodeType != XMLReader::ELEMENT) { continue; } if ($in->name == 'mirrors') { parseMirrorList($in, $out); }}$out->endElement(); //<file>$out->endElement(); //<files>$out->endElement(); //<metalink>$out->endDocument();?>