Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Gán xml được tạo bởi vòng lặp while cho một biến

Đây là cách thực hiện với DOM :

function createUserDetailsXml(array $result) {

    $dom  = new DOMDocument;
    $dom->formatOutput = TRUE; // enable automatic indenting
    $dom->loadXML('<users/>'); // set root node

    foreach($result as $row) {

        // create user-details node
        $user = $dom->createElement('user-details');

        // create and append details to user-details node
        $user->appendChild(
            $dom->createElement('user-id', $row['uid']));
        $user->appendChild(
            $dom->createElement('user-name', $row['userName']));
        $user->appendChild(
            $dom->createElement('user-points', $row['points']));
        $user->appendChild(
            $dom->createElement('image-url', $row['imageURL']));
        $user->appendChild(
            $dom->createElement('thumb-url', $row['thumbURL']));

        // add user-details node to XML document, e.g. users node
        $dom->documentElement->appendChild($user);
    };
    return $dom->saveXML(); // returns the formatted XML
};

Lưu ý rằng hàm yêu cầu bạn truyền vào toàn bộ mảng kết quả, vì vậy tôi có thể kiểm tra nó bằng:

$result = array(
    array(
        'uid'      => 1,
        'userName' => 'Gordon',
        'points'   => PHP_INT_MAX,
        'imageURL' => 'http://example.com/gordon.jpg',
        'thumbURL' => 'http://example.com/t_gordon.jpg'
    ),
    array(
        'uid'      => 2,
        'userName' => 'John <blink>"Frigging"</blink> Doe',
        'points'   => 0,
        'imageURL' => 'http://example.com/johndoe.jpg',
        'thumbURL' => 'http://example.com/t_johndoe.jpg'
    )
);
echo createUserDetailsXml($result);

Sau đó, hàm sẽ trả về

<?xml version="1.0"?>
<users>
  <user-details>
    <user-id>1</user-id>
    <user-name>Gordon</user-name>
    <user-points>2147483647</user-points>
    <image-url>http://example.com/gordon.jpg</image-url>
    <thumb-url>http://example.com/t_gordon.jpg</thumb-url>
  </user-details>
  <user-details>
    <user-id>2</user-id>
    <user-name>John &lt;blink&gt;"Frigging"&lt;/blink&gt; Doe</user-name>
    <user-points>0</user-points>
    <image-url>http://example.com/johndoe.jpg</image-url>
    <thumb-url>http://example.com/t_johndoe.jpg</thumb-url>
  </user-details>
</users>

Xin lưu ý rằng DOM đã tự động thoát các ký tự đặc biệt trong tên của John Doe cho bạn. DOM cũng sẽ đảm bảo các tên phần tử XML (hoặc các thuộc tính nếu bạn sử dụng chúng) là hợp lệ về mặt cú pháp. Nó cũng đã thêm XML Prolog.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. nhận các giá trị không tồn tại trong bảng mysql

  2. Làm cách nào để viết một so sánh an toàn rỗng <=> trong SQL thuần túy?

  3. sử dụng mã hóa cho mảng bên trong mysql ở đâu trong mệnh đề

  4. MySql có hỗ trợ sp_getapplock không

  5. ĐƯỢC XÁC NHẬN BẰNG 'mật khẩu' trong MySQL