Use XMLWriter to generate response

Gets rid of manual XML generation.
This commit is contained in:
Lukas Reschke 2015-11-30 15:40:10 +01:00
parent a94819f4a4
commit 574f9b1e3f
1 changed files with 29 additions and 18 deletions

View File

@ -27,22 +27,33 @@ require_once '../lib/base.php';
header('Content-type: application/xml');
$url=OCP\Util::getServerProtocol().'://'.substr(OCP\Util::getServerHost().OCP\Util::getRequestUri(), 0, -17).'ocs/v1.php/';
$request = \OC::$server->getRequest();
echo('
<providers>
<provider>
<id>ownCloud</id>
<location>'.$url.'</location>
<name>ownCloud</name>
<icon></icon>
<termsofuse></termsofuse>
<register></register>
<services>
<config ocsversion="1.7" />
<activity ocsversion="1.7" />
<cloud ocsversion="1.7" />
</services>
</provider>
</providers>
');
$url = $request->getServerProtocol() . '://' . substr($request->getServerHost() . $request->getRequestUri(), 0, -17).'ocs/v1.php/';
$writer = new XMLWriter();
$writer->openURI('php://output');
$writer->startDocument('1.0','UTF-8');
$writer->setIndent(4);
$writer->startElement('providers');
$writer->startElement('provider');
$writer->writeElement('id', 'ownCloud');
$writer->writeElement('location', $url);
$writer->writeElement('name', 'ownCloud');
$writer->writeElement('icon', '');
$writer->writeElement('termsofuse', '');
$writer->writeElement('register', '');
$writer->startElement('services');
$writer->startElement('config');
$writer->writeAttribute('ocsversion', '1.7');
$writer->endElement();
$writer->startElement('activity');
$writer->writeAttribute('ocsversion', '1.7');
$writer->endElement();
$writer->startElement('cloud');
$writer->writeAttribute('ocsversion', '1.7');
$writer->endElement();
$writer->endElement();
$writer->endElement();
$writer->endDocument();
$writer->flush();