PHP: Đọc dữ liệu XML trong PHP


Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên

Bài viết này sẽ hướng dẫn bạn cách đọc dữ liệu XML trong PHP.

Ví dụ kiểm tra, thêm, xóa, lấy địa chỉ email từ XML. Các file dưới đây nằm trong cùng thư mục.

File emails.xml

<?xml version="1.0"?>
<emails>
  <email>
    <value>email1@email.com</value>
    <date>2019-12-08 05:05:05</date>
  </email>
  <email>
    <value>email2@email.com</value>
    <date>2019-12-09 06:06:06</date>
  </email>

</emails>

File proccess.php

<?php
    /*
     * Kim tra email tn ti
     */
    function check_email($email, $url = 'emails.xml') {
        $doc = new DOMDocument('1.0');
        $doc->load($url);
        $emails = $doc->getElementsByTagName('email');
        foreach ($emails as $e) {
            $val = $e->getElementsByTagName('value');
            if ($email == $val->item(0)->nodeValue) {
                return true;
            }
        }
        return false;
    }

    /*
     * Thêm email
     */
    function write_email($email, $url = 'emails.xml') {
        $xml = simplexml_load_file($url);
        $entry = $xml->addChild('email');
        $entry->addChild('value', $email);
        $entry->addChild('date', date('Y-m-d H:i:s', time()));
        $doc = new DOMDocument('1.0');
        $doc->formatOutput = true;
        $doc->preserveWhiteSpace = true;
        $doc->loadXML($xml->asXML(), LIBXML_NOBLANKS);
        $doc->save($url);
    }

    /*
     * Ly danh sách email
     */
    function get_emails($url = 'emails.xml') {
        $doc = new DOMDocument('1.0');
        $doc->load($url);
        $emails = $doc->getElementsByTagName('email');
        $email_list = [];
        foreach ($emails as $e) {
            $val = $e->getElementsByTagName('value');
            $dat = $e->getElementsByTagName('date');
            $email_list[] = array(
                'email' => $val->item(0)->nodeValue,
                'date' => $dat->item(0)->nodeValue,
            );
        }
        return $email_list;
    }

    /*
     * Xóa email
     */
    function delete_email($email, $url = 'emails.xml') {
        $doc = new DOMDocument('1.0');
        $doc->load($url);
        $the_document = $doc->documentElement;
        $emails = $the_document->getElementsByTagName('email');
        $node = null;
        foreach ($emails as $e) {
            $val = $e->getElementsByTagName('value');
            if ($email == $val->item(0)->nodeValue) {
                $node = $e;
                break;
            }
        }
        if ($node != null) {
            $the_document->removeChild($node);
        }
        $doc->save($url);
    }
    //Tiến hành thc thi
    if (!check_email('email3@email.com')) { // Kim tra email tn ti
        write_email('email3@email.com'); // Thêm email
    }

    $data = get_emails();
    if ($data) {
        foreach ($data as $row) {
            // Xut danh sách email
            echo $row['email'];
            echo ' thêm ngày ';
            echo $row['date']."<br>";
        }
    }

    if (check_email('email3@email.com')) { // Kim tra email tn ti
        delete_email('email3@email.com'); // Xóa email
    }
?>

Kết quả:

email1@email.com thêm ngày 2019-12-08 05:05:05
email2@email.com thêm ngày 2019-12-09 06:06:06
email3@email.com thêm ngày 2020-09-06 07:00:01 

» Tiếp: COOKIE trong PHP
« Trước: Cách indent 2 dấu cách (space) trong Sublime Text
Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên
Copied !!!