Nếu bạn đang gặp khó khăn trong việc lấy dữ liệu từ XML thì bài viết này sẽ giúp bạn dễ dàng quản lý và làm chủ được tập tin XML, ví dụ rất đơn giản nhưng thật sự hữu ích cho những bạn mới lập trình, các bạn đừng nên bỏ qua.
Ví dụ kiểm tra, thêm, xóa, lấy địa chỉ email từ XML.
XML
Tập tin email.xml
nằm trong thư mục data
có định dạng như sau:
<?xml version="1.0"?>
<emails>
<email>
<value>[email protected]</value>
<date>2016-12-09 04:05:05</date>
</email>
<email>
<value>[email protected]</value>
<date>2016-12-09 04:07:54</date>
</email>
</emails>
PHP
<?php
/*
* Kiểm tra email tồn tại
*/
function check_email($email, $url = './data/email.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 = './data/email.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);
}
/*
* Lấy danh sách email
*/
function get_emails($url = './data/email.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 = './data/email.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);
}
?>
Sử dụng
<?php
if (!check_email('[email protected]')) { // Kiểm tra email tồn tại
write_email('[email protected]'); // Thêm email
}
$data = get_emails();
if ($data) {
foreach ($data as $row) {
// Xuất danh sách email
echo $row['email'];
echo ' thêm ngày ';
echo $row['date'];
}
}
if (check_email('[email protected]')) { // Kiểm tra email tồn tại
delete_email('[email protected]'); // Xóa email
}
?>
Chúc các bạn thành công!
Không có bình luận.