我需要将数据从MySQL提取到XML并在Laravel 5中回显它。
这是我传统上的做法:
$query = "SELECT * FROM table";
$result = mysql_query($query);
$dom = new DOMDocument("1.0");
$parnode = $dom->appendChild($node);
while ($row = @mysql_fetch_assoc($result)){
$node = $dom->createElement("data");
$newnode = $parnode->appendChild($node);
$newnode->setAttribute("username",$row['username']);
$newnode->setAttribute("login_attemp", $row['login_attemp']);
$newnode->setAttribute("mobile", $row['mobile']);
$newnode->setAttribute("email", $row['email']);
$newnode->setAttribute("type", $row['type']);
}
echo $dom->saveXML();
现在,我希望在Laravel 5中完成相同操作,请帮助我
提前致谢
从您的问题还不清楚是什么问题。
您可以使用模型来获取数据,然后通过使用把它变成XML像你这样做之前DOMDocument
或可能更好用XMLWriter
即
use Illuminate\Support\Facades\Response;
use App\User;
Route::get('/users/xml', function() {
$users = User::all();
$xml = new XMLWriter();
$xml->openMemory();
$xml->startDocument();
$xml->startElement('users');
foreach($users as $user) {
$xml->startElement('data');
$xml->writeAttribute('id', $user->id);
$xml->writeAttribute('firstname', $user->firstname);
$xml->writeAttribute('lastname', $user->lastname);
$xml->writeAttribute('email', $user->email);
$xml->endElement();
}
$xml->endElement();
$xml->endDocument();
$content = $xml->outputMemory();
$xml = null;
return response($content)->header('Content-Type', 'text/xml');
});
样本输出:
<?xml version="1.0"?>
<users>
<data id="1" firstname="John" lastname="Doe" email="[email protected]"/>
<data id="2" firstname="Mark" lastname="Lee" email="[email protected]"/>
<data id="3" firstname="Jane" lastname="Doe" email="[email protected]"/>
</users>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句