/ / Php nâng cao / Comments (3)

Đọc ghi dữ liệu XML với php

Như các bạn đã được tìm hiểu về html là “Ngôn ngữ Đánh dấu Siêu văn bản”,trong bài hôm nay chúng ta sẽ tìm hiểu qua 2 ngôn ngữ rất được hay sử dụng cho việc trao đổi và lưu trữ dữ liệu trong lập trình web đó chính là XML.

XML là gì?

– XML(eXtensible Markup Language) là một ngôn ngữ đánh dấu mở rộng, được sử dụng rộng rãi cho việc trao đổi và lưu trữ dữ liệu. Nó cho phép người dùng đánh dấu (mark up) dữ liệu của mình bằng các thẻ do chính người dùng định nghĩa

– Dữ liệu XML được lưu trữ trong các file text có mở rộng là .xml

– Dễ dàng lưu trữ và truy cập, tốc độ truy xuất vào file xml rất nhanh

Cấu trúc file XML

+ Mức cơ bản

<?xml ?>

+ Bao gồm cả phiên bản

<?xml version="1.0"?>

+ Bao gồm cả mã hóa ký tự, cho bộ mã tiêu chuẩn quốc tế Unicode

<?xml version="1.0" encoding="utf-8"?>

– Các thẻ xml cũng có điểm khá giống với các thẻ trong html có thẻ mở và thẻ đóng,và được phần cấp dạng cặp thẻ cha con

– Ví dụ: tạo file books.xml với nội dung:

<?xml version="1.0" encoding="UTF-8"?>
  <books name=“mynote”>
         <book>
               <title>Sống mòn</title>
               <author>Nam Cao</author>
               <category>Tiểu thuyết</category>
         </book>
         <book>
              <title>Ba người bạn</title>
              <author>Nam Cao</author>
             <category>Truyện ngắn</category>
         </book>
</books>
  • Dòng 1 là phần khai báo, nêu rõ phiên bản XML đang sử dụng(bắt buộc) và hệ mã utf8.
  • Ngay sau đó là phần thân của file xml, bao gồm các phần từ được xếp lồng vào nhau, do người dùng tự định nghĩa
  • Phần tử ngoài cùng, ở đây là phần tử books, bao bọc tất cả các phần tử khác được gọi là phần tử tài liệu(document element) hoặc phần từ gốc (root element)
  • Các phần tử bên trong (book) có thể có thêm các phần tử con khác (title, author, category)

Tạo file XML với PHP DOM

– Nếu các bạn đã từng nghiên cứu qua bài viết làm việc với file trong php thì chúng ta hoàn toàn có thể ghi và lấy nội dung trong file 1 cách dễ dàng phải không nào.Nhưng trong dữ liệu dạng XML thì php hỗ trợ riêng thư viện cho việc ghi dữ liệu dưới định dạng XML đó chính là đối tượng DOMDocument.

– Ví dụ:

<?php
$xmldoc = new DOMDocument();  
$xmldoc->formatOutput = true;    
$root = $xmldoc->createElement("books");
$xmldoc->appendChild( $root );
     $book = $xmldoc->createElement( "book" );
          $author = $xmldoc->createElement("author");
          $author->appendChild(
               $xmldoc->createTextNode("Nam Cao")
          );
      $book->appendChild($author);
$root->appendChild($book);
$xmldoc->save("books.xml");
?>

– Các bạn thử chạy đoạn code trên và xem kết quả nhé,chúng ta sẽ tạo ra 1 file với tên là books.xml với nội dung như sau (các bạn có thể mở file này bằng trình duyệt IE):

Nôi dung file XML

Nôi dung file XML

Đọc dữ liệu từ file xml

– Ở ví dụ trước chúng ta đã có thể lưu nội dung vào file XML,và giờ là lúc chúng ta thực hiện đọc nội dung trong file đó.Trong PHP cũng hỗ trợ chúng ta đọc nội dung trong file XML 1 cách rất dễ dàng khi sử dụng extension SimpleXML ,và dữ liệu trả về sẽ ở dưới dạng 1 đối tượng

Ví dụ: đọc nội dung file books.xml mà vừa tạo ra

<?php
    //load file xml
    $xml = simplexml_load_file("books.xml")
    or die(“Không thể load file XML");
    foreach($xml->book as $book) {
         echo "Tiêu đề: ".$book->title
         ." - Tác giả: ".$book->author
         ." - Thể loại: ".$book->category;
     }
?>

+ Lúc này ta load toàn bộ nội dung trong file books.xml lưu trong đối tượng $xml,sau đó ta chỉ cần dùng vòng lặp foreach để duyệt các phần tử trong đối tượng này.

Kết thúc bài viết: Qua bài này các bạn đã có cái nhìn khái quát về cách đọc ghi dữ liệu vào file XML rồi phải không nào,sang bài sau chúng ta sẽ tìm hiểu sang kiểu dữ liệu khác cũng rất quan trọng đó chính là JSON



04/09/2014
Written by nobitacnt

Trong bài viết không tránh khỏi những câu từ chưa chính xác,mong nhận được sự góp ý để website hoàn thiện hơn.Nếu thấy bài viết có ích với bạn hãy like và share để ủng hộ nhé :D.

Bài viết chùng chuyên mục

3 Comments

  1. HUY says:
     /  Reply

    Một số link trong bài viết vẫn trỏ về localhost/wordpress
    Không những ở bài viết này mà ở một số bài viết khác cũng vậy nha bạn

    • nobitacnt says:
       /  Reply

      Đây là do trước mình cập nhật từ localhost lên rồi.Bạn góp ý mình mới thấy,cảm ơn bạn nhiều nhé

  2. Pingback: jQuery ajax toàn tập – Tai-Chuong

Gửi bình luận

Giới thiệu

Mình tạo ra blog này với mong muốn chia sẻ và học hỏi kinh nghiệm trong quá trình thiết kế website. Website đang trong quá trình phát triển chân thành cảm ơn mọi sự góp ý của các bạn để làm cho website ngày càng hoàn thiên.

DMCA.com Protection Status
Theo dõi qua Email

Tổng hợp các bài viết về

Hoc php - CodeIgniter Framework - Laravel Framework - PHP va MYSQL