създаване и изтегляне на xml с бутон и domdocument

добре, това, което искам да направя, е да създам xml файл и да го изтегля, ако е възможно, без да го записвам в сървъра.

това, което имам досега, е създаването на xml с DOMDocument и съхраняването му в сървъра

<?php
$domTree = new DOMDocument('1.0', 'UTF-8');
$rootXML = $domTree->createElement( 'XML' );
$rootXML = $domTree->appendChild($rootXML);

$personalData = $domTree->createElement( 'PERSONAL' );
$personalData = $rootXML->appendChild($personalData);
$personalData ->nodeValue = "Alan";
$domTree->save('MyXmlFile.xml');
?>

знам, че трябва да използвам нещо подобно

<?php
header('Content-type: text/xml');
header('Content-Disposition: attachment; filename="text.xml"');

echo $xml_contents;
?>

но използвайки DOMDocument се изгубих в това как да го използвам, БЛАГОДАРЯ ПРЕДВАРИТЕЛНО!


person Andres Perez Guevara    schedule 28.07.2014    source източник
comment
Ако поставите тези извиквания на заглавка във вашия документ, тогава echo $domTree->saveXML(); трябва да свърши работа   -  person scrowler    schedule 29.07.2014
comment
СТРАХОТЕН!!!! благодаря работи перфектно!   -  person Andres Perez Guevara    schedule 29.07.2014


Отговори (1)


За да извеждате към стандартния изход - това е, което PHP изпраща на браузъра - можете да използвате PHP изходен поток:

header('Content-type: text/xml');
header('Content-Disposition: attachment; filename="text.xml"');
$domTree->save('php://stdout');

Този принцип работи с (почти) всичко в PHP, което очаква име на файл, което е доста добра функция. Сравнете например с моя отговор на phpexcel за изтегляне.

Това е просто същото като когато бихте направили:

echo $domTree->saveXML();

като echo също "отпечатва" в стандартния изход. Но за по-големи данни концепцията за поток е за предпочитане.

Ако искате да научите повече за стандартния изход, Wikipedia има преглед на тези така наречени стандартни потоци:

За правилния тип XML съдържание, това зависи донякъде от това, което правите, предлагам да разгледате, ако искате да научите малко повече:

person hakre    schedule 30.07.2014