Mục Lục
Mục Lục
Giáo Trình Môn Học Tài Liệu Học PHP & MySQL Kiến Thức Căn Bản Video Lập trình PHP Basic - Biến, Hằng, Toán Tử và Mảng trong PHP - Lập Trình PHP Echo trong PHP - Hiển thị bảng thông tin sinh viên bằng PHP Video Hướng dẫn lập trình PHP căn bản với if, else if, else, switch- lập trình PHP Video Lập trình PHP basic - for, while, do while, foreach, function - lập trình PHP Video Hướng dẫn lập trình PHP căn bản - Function - lập trình PHP Sinh ngẫu nhiên mảng gồm N số nguyên trong PHP - Sắp xếp mảng trong PHP Fibonacci trong PHP - Lập Trình PHP - Khoá học lập trình PHP Tính tổng các số nguyên từ 0 tới N bằng PHP In tam giác * bằng PHP, in tam giác sao bằng PHP, in hình tam giác * băng PHP Hiển thị ngẫu nhiên N quyển sách bằng PHP - Quản lý sách bằng PHP Bài tập biến, toán tử, mệnh đề điều kiện PHP/MySQL - Kiến thức core căn bản Bài tập ôn luyện Loop & Function & Array trong PHP căn bản BÀI TẬP TỔNG HỢP PHP – LUỒNG ĐIỀU KHIỂN, HÀM VÀ MẢNG Tìm Hiểu Form GET/POST Video Hướng dẫn học lập PHP căn bản - Tìm hiểu GET/POST - lập trình PHP Tạo máy tinh căn bản bằng PHP - Calculator in PHP Video Hướng dẫn tạo dự án calculator bang PHP + JS - Lập trình PHP Video Ajax: Hướng dẫn tạo máy tính bằng PHP - Sử dụng Ajax - GET/POST form trong PHP - Lập trình PHP Video Form đăng ký tài khoản bằng PHP (GET/POST)- Form PHP Form đăng ký tài khoản người dùng - Registation Form trong PHP - Lập trình PHP - Lập Trình PHP MySQL Video Hướng dẫn chữa bài tập đăng ký & đăng nhập sử dụng GET & POST - Lập trình PHP Chương trình quản lý sinh viên PHP - Yêu cầu sử dụng GET/POST trong PHP - Lập trình PHP Bài tập PHP cơ bản: Thực hành mảng key–value và xử lý Form bằng GET, POST Bài tập PHP cơ bản: Quản lý thông tin sinh viên bằng mảng key–value và Form (GET, POST) Cookie Video Lập trình PHP căn bản - cookie - lập trình PHP Video Hướng dẫn tìm hiểu cookie - Quản lý xác minh tài khoản login - cookie - Lập trình PHP/MySQL Sử dụng cookie trong PHP - quản lý đăng ký & đăng nhập tài khoản trong PHP - Lập Trình PHP PHP Cookies: Cách tạo, truy xuất và xóa cookie trong PHP [Hướng dẫn chi tiết + Bài tập thực hành] QUẢN LÝ NGƯỜI DÙNG BẰNG COOKIE TRONG PHP Session Video Lập trình PHP căn bản - session - lập trình PHP Video Thành thạo API - Ajax trọng dự án - Thành thạo về Session - Lập trình PHP/MySQL BÀI TẬP PHP VỀ COOKIE VÀ SESSION Hướng dẫn lưu trữ và truy xuất dữ liệu người dùng bằng PHP Session Xây dựng ứng dụng quản lý bán hàng bằng PHP Session và Cookie từ cơ bản đến nâng cao Kết Nối CSDLPHP/ MySQL Video Thực hiện truy vấn dữ liệu từ PHP tới MySql - Khoá học PHP căn bản Video Kết nối PHP với MySQL (Thực hiện insert) - Khoá PHP căn bản Video Tối ưu hoá code mysql + php, tạo thư viện chung trong lập trình PHP căn bản Video Tạo web tin tức - PHP/MySQL Bài tập - Tạo website bán hàng lư niệm - Login - Lập trình PHP/MySQL Bài tập - Tạo trang login và register - kết nối CSDL trong PHP - Lập trình PHP/MySQL Video Thực hiện đăng nhập tài khoản sử dụng php mysql - khoá học PHP căn bản Thêm - sửa - xoá thông tin sinh viên - Lập trình PHP Bài tập - Xây dựng cart (giỏ hàng) + checkout (thanh toán) sử dụng Cookie & localStorage - Lập trình PHP/MySQL VideoCookie: Xây dựng cart (giỏ hàng) + checkout (thanh toán) sử dụng Cookie & localStorage - Lập trình PHP/MySQL Video Session: Xây dựng web hoàn thiện gồm cart page + checkout page + complete page - Lập trình PHP/MySQL Bài tập - Thiết kế trang admin quản lý thư viện sử dụng bootstrap template - Lập trình PHP/MySQL Trang quản lý sản phẩm php - Lập trình PHP Video Trang quản lý sản phẩm php - Lập trình PHP Quản lý sách bằng PHP - trang quản trị sách bằng PHP - Lập trình PHP Viết website quản lý sinh viên PHP & MySQL - Lập Trình PHP Video Viết website quản lý sinh viên PHP & MySQL - Lập Trình PHP Video Hướng dẫn phân trang bằng PHP - Lập trình PHP Viết website quản lý sinh viên PHP & MySQL- Xử lý bằng Ajax - Lập Trình PHP Bài tập - ứng dụng quản lý ghi chú - Lập trình PHP/MySQL Xây dựng website bán điện thoại kết nối database (CSDL) - Lập trình PHP/MySQL Bài tập - Thiết kế website bán hàng lưu niệm - giỏ hàng, thanh toán - Lập trình PHP/MySQL BÀI TẬP THỰC HÀNH PHP – QUẢN LÝ PHÒNG HỌC (SỬ DỤNG PDO) OOP & Nâng Cao Video OOP - Lập trình php Video Kế thừa OOP - Lập trình php Video Nắm chắc token login - Hướng dẫn login login multi devices, browsers trong lập trình PHP/MySQL Video Trở thành chuyên gia API Server - Hướng dẫn tất tần tật về API từ Server tới Client - Lập trình PHP Bài tập hương đối tượng OOP trong PHP [XML] Tạo tài liệu XML [XML] Tìm hiểu XSLT - Ứng dụng trong mô hình phát triển MVC [XSL] XML: Tạo tài liệu XML - quản lý lớp học [JSON] Tìm hiểu JSON & Viết API dự án Bài tập cơ bản OOP - Lập trình PHP/MySQL Quản lý Thư Viện Cơ Bản - Khóa Học Lập Trình PHP/MySQL Quản lý Thư Viện Cơ Bản (OOP + MySQL) Examination & Ôn Tập [Examination] Kiểm Tra 60 phút - Test nhanh - Khóa học PHP Video Kiểm Tra 60 phút - Test nhanh - Khóa học PHP [Examination] Xây dựng Website Quản lý Thư viện trường Bài tập - Quản lý thư viên bằng PHP Bài tập - Đăng ký đăng nhập sử dụng Session - Khóa học php/mysql Quản lý sinh viên bằng Session - Khóa học PHP/MySQL Đăng ký đăng nhập tài khoản - Khóa học PHP/MySQL Tạo POS bán hàng sử dụng Cookie trong PHP - Khóa học PHP/MySQL [Bai Tap] Dang ky & dang nhap tai khoan - Khoa hoc PHP/MySQL Bài tập - Quản lý sản phẩm bằng Cookie - lập trình PHP Thiết kế hệ thống Quản lý sản phẩm + Quản lý người dùng Thực Chiến Web Bán Hoa Quả Xây dựng website bán hoa quả bằng PHP/MySQL - Lập trình PHP/MySQL Video Xây dựng website bán hoa quả bằng PHP/MySQL - Lập trình PHP/MySQL - Phần 1 Video Xây dựng website bán hoa quả bằng PHP/MySQL - Lập trình PHP/MySQL - Phần 2 Video Xây dựng website bán hoa quả bằng PHP/MySQL - Lập trình PHP/MySQL - Summernote editor - Phần 3 Video Xây dựng website bán hoa quả bằng PHP/MySQL - Lập trình PHP/MySQL - Phần 4 Video Xây dựng website bán hoa quả bằng PHP/MySQL - Lập trình PHP/MySQL - Phần 5 Thực Chiến: Web Bán Hàng Video PHẦN 1 | Giới thiệu dự án-công nghệ sử dụng - phân tích chức năng dự án | Website bán hàng PHP/MySQL Video Phần 2 | Phân tích thiết kế CSDL (database) | Web bán hàng PHP/MySQL Video Phần 3 | Phân tích thiết kế CSDL (database) | Web bán hàng PHP/MySQL Video Phần 4 | Hướng dẫn xây dựng khung dự án | Web bán hàng PHP/MySQL Video Phần 5 | Authentication web | Chức năng đăng ký & đăng nhập & giữ đăng nhập | Web bán hàng PHP/MySQL Video Phần 6 | Xây dựng khung layout cho trang quản trị | Web bán hàng PHP/MySQL Video Phần 7 | Quản lý tài khoản người dùng | Hiển thị danh sách & Thêm & Sửa | Web bán hàng PHP/MySQL Video Phần 8 | Quản lý tài khoản người dùng | Sửa & Xóa | Web bán hàng PHP/MySQL Video Phần 9 | Quản lý danh mục sản phẩm | Web bán hàng PHP/MySQL Video Phần 10 | Quản lý sản phẩm | Upload File lên Server | Soạn thảo Summernote | Web bán hàng PHP/MySQL Video Phần 11 | Quản lý phản hồi | Web bán hàng PHP/MySQL Video Phần 12 | Quản lý đơn hàng | Web bán hàng PHP/MySQL Video Phần 13 | Thiết kế trang chủ | Giao diện người dùng | Web bán hàng PHP/MySQL Video Phần 14 | Thiết kế danh mục sản phẩm | Giao diện người dùng | Web bán hàng PHP/MySQL Video Phần 15 | Thiết kế chi tiết sản phẩm | Giao diện người dùng | Web bán hàng PHP/MySQL Video Phần 16 | Xử lý phần giỏ hàng | Giao diện người dùng | Web bán hàng PHP/MySQL Video Phần 17 | Flow mua hàng | cart page | checkout page | Giao diện người dùng | Web bán hàng PHP/MySQL Video Phần 18 | Trang gửi phản hồi | Giao diện người dùng | Web bán hàng PHP/MySQL Video Phần 19 FINAL | Hướng dẫn cài đặt dự án từ source code mẫu | Web bán hàng PHP/MySQL Hướng Dẫn Deploy Dự Án Video Hướng dẫn upload website lên server -Hướng dẫn deploy project php trên heroku - Cài đặt Heroku
PHP Tutorial

[XML] Tìm hiểu XSLT - Ứng dụng trong mô hình phát triển MVC

Giới thiệu

Trong thế giới phát triển web và phần mềm hiện đại, XML (eXtensible Markup Language) không chỉ là một định dạng dữ liệu, mà còn là nền tảng cho nhiều công nghệ quan trọng khác như XSLT, XPath, SOAP, và Web Services.
Khi nhắc đến việc biến đổi dữ liệu XML thành giao diện người dùng (HTML) hay định dạng khác, không thể không nói đến XSLT (Extensible Stylesheet Language Transformations).

Vậy XSLT là gì, nó liên quan gì đến mô hình MVC, và cách ứng dụng nó trong lập trình web ra sao?

Bài viết này sẽ giúp bạn:

  • Hiểu khái niệm, vai trò, và cú pháp cơ bản của XSLT.

  • Nắm rõ cách hoạt động của XSLT khi chuyển đổi XML sang HTML.

  • Thấy rõ mối liên hệ giữa XSLT và mô hình MVC (Model - View - Controller).

  • Thực hành với ví dụ cụ thể từ bộ mã student.xmlstudent.xsl.

XSLT là gì?

XSLT (Extensible Stylesheet Language Transformations) là một ngôn ngữ dùng để chuyển đổi tài liệu XML thành định dạng khác, chẳng hạn như HTML, XML khác, JSON, hoặc văn bản thuần.

Hiểu đơn giản:

XSLT là “bản thiết kế giao diện” giúp XML – vốn chỉ là dữ liệu thô – trở nên có hình thức hiển thị đẹp mắt và dễ hiểu.

Ví dụ:

  • Một file student.xml chứa danh sách học sinh.

  • Một file student.xsl định nghĩa cách hiển thị danh sách đó dưới dạng bảng HTML.

Khi trình duyệt đọc XML có liên kết XSL, nó sẽ kết hợp hai file lạihiển thị giao diện HTML tự động.

Cấu trúc cơ bản của XSLT

Một tài liệu XSLT thường có cấu trúc như sau:

<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <!-- Nội dung HTML hoặc kết quả sau khi transform --> </xsl:template> </xsl:stylesheet>

Giải thích:

  • xsl:stylesheet: thẻ gốc của tài liệu XSLT.

  • xmlns:xsl: namespace mặc định của ngôn ngữ XSL.

  • xsl:template match="/": định nghĩa template chính – tức là bắt đầu xử lý từ gốc của tài liệu XML (/ nghĩa là toàn bộ file).

Liên kết XML và XSLT

Trong file XML, để liên kết với stylesheet XSL, ta dùng dòng khai báo:

<?xml-stylesheet type="text/xsl" href="student.xsl"?>

Điều này giúp trình duyệt hiểu rằng:

Khi mở file XML, hãy áp dụng file student.xsl để hiển thị nội dung.

Ví dụ thực tế: Hiển thị danh sách sinh viên từ XML bằng XSLT

File 1 – student.xml

<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="student.xsl"?> <studentList> <student> <fullname>TRAN VAN A</fullname> <age>12</age> <address>Ha Noi</address> <email>a@gmail.com</email> <gender>Nam</gender> </student> <student> <fullname>TRAN VAN B</fullname> <age>12</age> <address>Ha Noi</address> <email>a@gmail.com</email> <gender>Nam</gender> </student> <student> <fullname>TRAN VAN C</fullname> <age>12</age> <address>Ha Noi</address> <email>a@gmail.com</email> <gender>Nam</gender> </student> </studentList>

File 2 – student.xsl

<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <h2>DANH SÁCH SINH VIÊN</h2> <table border="1"> <tr bgcolor="#9acd32"> <th>Họ tên</th> <th>Tuổi</th> <th>Địa chỉ</th> <th>Email</th> <th>Giới tính</th> </tr> <xsl:for-each select="studentList/student"> <tr> <td><xsl:value-of select="fullname"/></td> <td><xsl:value-of select="age"/></td> <td><xsl:value-of select="address"/></td> <td><xsl:value-of select="email"/></td> <td><xsl:value-of select="gender"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>

Khi mở file student.xml trên trình duyệt, bạn sẽ thấy một bảng HTML hiển thị danh sách sinh viên, được tạo tự động bởi XSLT.

Phân tích hoạt động của XSLT

  1. Tìm và áp dụng template gốc (match="/")
    → Bắt đầu xử lý toàn bộ cây XML.

  2. Duyệt qua từng phần tử student

    <xsl:for-each select="studentList/student">

    → Vòng lặp for-each giúp lặp lại phần tử student trong studentList.

  3. Lấy giá trị của từng node con

    <xsl:value-of select="fullname"/>

    → Lấy giá trị của thẻ <fullname> hiện tại và hiển thị trong bảng HTML.

  4. Xuất HTML hoàn chỉnh
    → Sau khi xử lý toàn bộ, trình duyệt hiển thị dữ liệu theo đúng cấu trúc trong file XSLT.

Ưu điểm khi dùng XSLT

  • Tách biệt dữ liệu và giao diện hiển thị: XML chứa dữ liệu, XSL định nghĩa cách hiển thị.

  • Tái sử dụng dễ dàng: Có thể áp dụng một XSL cho nhiều XML khác nhau.

  • Hỗ trợ mô hình MVC: XSL đóng vai trò View trong cấu trúc MVC.

  • Hoạt động độc lập: Không cần backend server, chỉ cần trình duyệt có hỗ trợ XML/XSLT.

  • Có thể xuất ra nhiều định dạng khác nhau: HTML, CSV, JSON, hoặc XML mới.

Nhược điểm của XSLT

  • ❌ Cú pháp hơi phức tạp với người mới học XML.

  • ❌ Khó bảo trì khi dữ liệu lớn và nhiều cấp độ lồng nhau.

  • ❌ Hạn chế trong việc xử lý logic phức tạp (if, for nâng cao).

  • ❌ Các trình duyệt hiện đại (Chrome, Edge) đôi khi không hiển thị XSLT trực tiếp — cần server để transform.

Ứng dụng XSLT trong mô hình MVC

Mô hình MVC (Model – View – Controller) là kiến trúc phổ biến trong lập trình web và phần mềm.
Cùng xem XSLT đóng vai trò gì trong mô hình này:

Thành phầnVai tròVí dụ trong bài
ModelLưu trữ dữ liệu (XML)student.xml
ViewHiển thị dữ liệu (XSLT/HTML)student.xsl
ControllerĐiều khiển luồng xử lý (PHP, Java, Node.js...)vidu.html hoặc file PHP gọi XML + XSL

Luồng hoạt động:

  1. Controller (PHP) đọc dữ liệu từ CSDL hoặc API, lưu thành file XML (Model).

  2. Controller áp dụng XSLT (View) để chuyển XML → HTML.

  3. Kết quả cuối cùng gửi tới người dùng (trình duyệt).

Ví dụ tích hợp XSLT vào PHP (Controller)

<?php // Controller xử lý XSLT trong PHP $xml = new DOMDocument; $xml->load('student.xml'); $xsl = new DOMDocument; $xsl->load('student.xsl'); // Khởi tạo XSLT processor $proc = new XSLTProcessor; $proc->importStyleSheet($xsl); // Xuất kết quả HTML ra màn hình echo $proc->transformToXML($xml); ?>

Kết quả: PHP sẽ đọc student.xml, áp dụng student.xsl, và hiển thị bảng HTML hoàn chỉnh.

Lợi ích khi áp dụng XSLT trong MVC

  1. Tăng tính module hóa

    • Mỗi phần (Model, View, Controller) hoạt động độc lập.

    • Dễ dàng thay đổi giao diện mà không ảnh hưởng đến dữ liệu.

  2. Tái sử dụng giao diện cho nhiều loại dữ liệu khác nhau

    • Một file XSL có thể hiển thị nhiều file XML cùng cấu trúc.

  3. Hỗ trợ đa định dạng xuất

    • Có thể tạo thêm XSL khác để xuất XML → CSV, PDF, JSON...

  4. Giúp kiểm thử và bảo trì dễ dàng

    • Dữ liệu và giao diện tách biệt → dễ test riêng từng phần.

Tại sao nên học XSLT dù JSON đang phổ biến?

Nhiều lập trình viên hiện nay chỉ chú trọng JSON, mà quên rằng XSLT vẫn là nền tảng mạnh mẽ trong các hệ thống lớn như:

  • Chính phủ, ngân hàng, bảo hiểm.

  • Các phần mềm ERP, CRM, hoặc doanh nghiệp dùng XML làm giao thức chuẩn.

  • Ứng dụng Android/JavaEE, nơi file cấu hình (Manifest, Layout) vẫn dùng XML.

Hiểu được XSLT giúp bạn:

  • Đọc hiểu nhanh cấu trúc file XML phức tạp.

  • Biết cách tạo View động mà không cần JavaScript.

  • Giao tiếp được với các hệ thống backend cũ dùng XML.

Một số lệnh thường dùng trong XSLT

Câu lệnhChức năng
<xsl:value-of select="node"/>Lấy giá trị của node
<xsl:for-each select="path">...</xsl:for-each>Lặp qua các phần tử
<xsl:if test="condition">...</xsl:if>Điều kiện if
<xsl:choose> <xsl:when test=""> ... </xsl:when> <xsl:otherwise>...</xsl:otherwise> </xsl:choose>Cấu trúc điều kiện nhiều nhánh
<xsl:sort select="path"/>Sắp xếp dữ liệu
<xsl:apply-templates/>Gọi template con
<xsl:output method="html"/>Định dạng đầu ra

So sánh XSLT với HTML + PHP thông thường

Tiêu chíXSLTHTML + PHP
Cấu trúc dữ liệuXML rõ ràngTùy ý
Tách biệt dữ liệu và giao diệnRõ ràngThường lẫn lộn
Tốc độ xử lýNhanh với dữ liệu nhỏLinh hoạt với dữ liệu lớn
Học dễ khôngHơi khó cho người mớiDễ học
Ứng dụngXML-based system, MVC, WebServiceHầu hết ứng dụng web

Thực hành nâng cao: Kết hợp XSLT + AJAX

Bạn có thể dùng AJAX để tải file XML, sau đó áp dụng XSLT ngay trên trình duyệt mà không cần server.

let xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { let xml = this.responseXML; displayResult(xml); } }; xhttp.open("GET", "student.xml", true); xhttp.send(); function displayResult(xml) { let xslt = new XMLHttpRequest(); xslt.open("GET", "student.xsl", false); xslt.send(); let xsl = xslt.responseXML; let xsltProcessor = new XSLTProcessor(); xsltProcessor.importStylesheet(xsl); let result = xsltProcessor.transformToFragment(xml, document); document.body.appendChild(result); }

Kết luận

XSLT là một công nghệ tuy “cũ” nhưng cực kỳ hiệu quả và mạnh mẽ khi làm việc với dữ liệu XML.
Trong mô hình MVC, XSLT đảm nhiệm vai trò View, giúp hiển thị dữ liệu từ XML một cách rõ ràng, tách biệt và có thể mở rộng.

Qua ví dụ student.xmlstudent.xsl, bạn đã thấy:

  • Cách tạo XML có cấu trúc dữ liệu chuẩn.

  • Cách thiết kế giao diện HTML từ XSLT.

  • Cách kết hợp XSLT vào PHP và mô hình MVC.

👉 Hãy thực hành ngay bằng cách:

  1. Tạo file student.xmlstudent.xsl.

  2. Mở student.xml bằng trình duyệt hoặc PHP.

  3. Quan sát kết quả và thử thêm cột mới (VD: “Điểm trung bình”).

Nếu bạn hiểu được luồng dữ liệu XML → XSLT → HTML, thì bạn đã nắm vững một phần cốt lõi của mô hình MVC và cách tách biệt dữ liệu – giao diện trong lập trình web.



Đăng nhập để làm bài kiểm tra

Chưa có kết quả nào trước đó

×