【问题标题】:How can i store data from mysql to XML in Laravel 5?如何在 Laravel 5 中将数据从 mysql 存储到 XML?
【发布时间】:2015-05-04 09:43:29
【问题描述】:

我需要从 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 中做同样的事情,请帮助我

提前致谢

【问题讨论】:

  • Laravel 是用 PHP 编写的。你在哪里卡住?你尝试了什么?
  • @Evert 我也有同样的问题,你能帮帮我吗
  • @XavierIssac 这个问题已经得到解答。如果您有同样的问题,请阅读答案?
  • @Evert 收到错误类 'App\Http\Controllers\Api\XMLWriter' 未找到
  • @XavierIssac 你应该学习如何使用 PHP 命名空间。如果您遇到问题,请在此网站上提出一个新问题。

标签: mysql xml laravel


【解决方案1】:

从你的问题来看,问题似乎不是很清楚。

您使用模型来获取数据,然后像以前一样使用DOMDocument 将其转换为xml,或者使用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="john@example.com"/>
  <data id="2" firstname="Mark" lastname="Lee" email="mark@example.com"/>
  <data id="3" firstname="Jane" lastname="Doe" email="jane@example.com"/>
</users>

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2015-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-12
  • 2021-08-23
  • 1970-01-01
相关资源
最近更新 更多