KỲ THI KẾT THÚC HỌC PHẦN HỌC KÌ 1 NĂM HỌC 2021-2022 Tên đề tài 6 : Áp dụng kiến thức về công nghệ XML-JSON đã được học và thực hiện phân tích bài toán quản lý sinh viên, sau đó xây dựng
Trang 1KỲ THI KẾT THÚC HỌC PHẦN HỌC KÌ 1
NĂM HỌC 2021-2022
Tên đề tài 6 : Áp dụng kiến thức về công nghệ XML-JSON đã được học và thực hiện phân tích bài toán quản lý sinh viên, sau đó xây dựng cơ sở dữ liệu XML/JSON cho phép chạy trên môi trường web với một số chức năng tối thiểu như hiển thị danh sách, thêm, xóa, tìm
kiếm, xuất file sang dạng JSON.
Giảng viên hướng dẫn : Nguyễn Đức Toàn
Sinh viên thực hiện : Phạm Nhật Ninh
Trang 3MỤC LỤC
LỜI MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Đối tượng và phạm vi nghiên cứu của đề tài 1
2.1 Đối tượng nghiên cứu: 1
2.2 Phạm vi nghiên cứu: 1
3 Nội dung: 1
CHƯƠNG 1: TỔNG QUAN VỀ CÔNG NGHỆ XML VÀ JSON 2
1.1 Khái niệm về XML 2
1.1.1 Cú pháp của XML: 2
1.2 Khái niệm về JSON 2
1.2.1 Cú pháp của JSON 2
1.3 So sánh XML và JSON 3
1.4 Giới thiệu về Python 4
1.5 Giới thiệu về PHP 5
CHƯƠNG 2: MÔ TẢ THUẬT TOÁN 6
2.1 Bài toán đặt ra 6
2.2 Giải quyết bài toán 6
2.2.1 Một số phần mềm có thể dùng giải quyết bài toán 6
2.2.2 Phần mềm XAMPP 6
2.3 Làm việc với XML và JSON trên nền tảng PHP và Python 7
2.3.1 Xây dựng tệp XML 7
2.3.2 Xây dựng python hiển thị tệp tin XML lên màn hình 8
2.3.3 Xây dựng giao diện chương trình và chức năng bằng PHP 9
CHƯƠNG 3: SẢN PHẨM THỰC TẾ 10
3.1 Tệp dữ liệu XML 10
3.2 Chương trình Python 10
Trang 43.3.1 Giao diện hệ thống 11
3.3.2 Chức năng Thêm 11
3.3.2 Chức năng Xóa 13
3.3.3 Chức năng xuất file JSON 14
TÀI LIỆU THAM KHẢO 15
Trang 5LỜI MỞ ĐẦU
1 Lý do chọn đề tài
Ứng dụng của XML để trao đổi thông tin giữa các website với nhau và thường được dùng để trao đổi giữa các website, rất cần thiết trong lập trình tương tác Nếu mô tả một cách đơn giản hơn thì XML giống như một máy phiên dịch ngôn ngữ giữa các hệ thống với nhau vậy Ngoài chức năng thông dịch, nó còn giúp đơn giản hóa dữ liệu giữa các platform và hệ thống khác nhau XML cũng có thể được dùng như một kho lưu trữ các dữ liệu đã trao đổi Khi dữ liệu được luân chuyển giữa các website phải có cấu trúc mới có thể đọc được
Hiểu được các ứng dụng tuyệt vời của XML và JSON em sẽ vận dụng vào
đề tài này Với mục đích củng cố kiến thức đã học được, xây dựng một danh sách quản lý nhỏ gọn, đơn giản, thân thiện, cũng như đem lại cho người dùng cảm giác thoải mái chỉ với một số thao tác đơn giản
2 Đối tượng và phạm vi nghiên cứu của đề tài
2.1 Đối tượng nghiên cứu:
Đề tài: “Quản lý sinh viên”
2.2 Phạm vi nghiên cứu:
Là sinh viên khoa Công Nghệ Thông Tin đang học tập tại trường Đại Học Tài Nguyên Và Môi Trường Hà Nội
3 Nội dung:
- Tìm hiểu khái quát về công nghệ XML và JSON, Python và PHP
- Mô tả bài toán, hướng giải quyết và phần mềm cần thiết để thực hiện đề tài
- Sản phẩm thực tế đã làm và cách các chức năng được hoạt động
Trang 6CHƯƠNG 1: TỔNG QUAN VỀ CÔNG NGHỆ XML VÀ
JSON
1.1 Khái niệm về XML
XML (Extensible Markup Language) là một ngôn ngữ đánh dấu được tạo ra bởiWorld Wide Web Consortium (W3C) để xác định cú pháp mã hóa tài liệu giúp con người,máy móc có thể đọc được Để XML mã hóa tài liệu, nó sử dụng thẻ xác định cấu trúc tài liệucũng như cách tài liệu được lưu trữ và vận chuyển File XML viết tắt của Extensible MarkupLanguage hay còn được gọi là ngôn ngữ đánh dấu mở rộng
1.1.1 Cú pháp của XML:
Sơ đồ sau minh họa qui tắc cú pháp để viết các kiểu đánh dấu và textkhác nhau trong một tài liệu XML
Hình 1.1.1 Sơ đồ qui tắc cú pháp của XML
1.2 Khái niệm về JSON
JSON là tên viết tắt của cụm từ JavaScript Object Notation, nó là một kiểu định dạng dữ liệu tuân theo một quy tắc nhất định mà hầu hết mọi ngôn ngữ lập trình hiện nay đều có thể đọc được và có thể thay thế XML
JSON là một trong những tiêu chuẩn mở giúp trao đổi dữ liệu có trên website Nói cách khách, JSON là định dạng giúp lưu trữ các thông tin có cấu trúc và nó chủ yếu được dùng để truyền tải dữ liệu giữa server và client và là một ngôn ngữ độc lập (phần cứng, hệ điều hành)
Các nhà phát triển thường xuyên sử dụng JSON để có thể làm việc với AJAX, cách định dạng này sẽ phối hợp hiệu quả với nhau để có thể nén dữ liệu tải không đồng bộ Có nghĩa như sau: trang web có thể được cập nhật thông tin mà bạn không cần phải làm mới trang Đây là quá trình rất dễ thực hiện và hiện nay thì nhiều trang web đang áp dụng AJAX, file Json đã dần trở nên phổ biến hơn
JSON mặc định được hỗ trở bởi JavaScript, ngoài ra PHP và Java cũng
hỗ trợ JSON
Trang 71.2.1 Cú pháp của JSON
Cú pháp JSON là một tập hợp con của cú pháp JavaScript
- Các quy tắc để viết cú pháp JSON:
Dữ liệu nằm trong các cặp (“tên”: “giá trị”)
Dữ liệu được ngăn cách nhau bằng dấu phẩy
Các đối tượng được đặt trong cặp dấu ngoặc nhọn ({}) giữ các đối tượng
Các mảng được đặt trong cặp dấu ngoặc vuông ([]) giữ mảng
Tên và giá trị phải được rào lại bằng cặp nháy kép
- Giá trị của JSON có thể là:
Số bao gồm số nguyên hoặc số thực
Chuỗi (đặt trong dấu nháy kép)
Boolean (true/false)
Mảng (đặt trong dấu ngoặc vuông)
Đối tượng (đặt trong dấu ngoặc nhọn)
1.3 So sánh XML và JSON
Bảng 1.3 So sánh XML và JSON Giống nhau:
Đối tượng JSON hỗ trợ 1 loại dữ liêu Dữ liệu XML không có kiểu
Các kiểu dữ liệu JSON: chuỗi, số, mảng,
Boolean
Tất cả dữ liệu XML đều là chuỗi
Dữ liệu có thể truy cập dưới dạng các đối
Trang 8Không có khả năng hiển thị XML là ngôn ngữ đánh dấu nên có khả
năng hiển thị dữ liệu
Chỉ hỗ trỡ kiểu dữ liệu và văn bản Hỗ trợ nhiều kiểu dữ liệu khác nhau như
số, văn bản, hình ảnh, biểu đồ, đồ thị,…
Dễ dàng lấy giá trị thật Lấy giá trị thực khó hơn
Được hỗ trợ bởi nhiều bộ công cụ Ajax Không được hỗ trợ đây đủ bởi bộ công
cụ Ajax
Giải má JavaScripr/ tuần tự hóa tự động Các nhà phát triển phải viết mã
JavaScript để tuần tự hóa/ hủy tần tự hóa
từ XML
Hỗ trợ đối tượng gốc Đối tượng phải được thể hiện bằng các
quy ước- hầu như không sử dụng thuộc tính và phân tử
Chỉ hỗ trợ mã hóa UTF-8 Hỗ trợ nhiều mã hóa khác nhau
Các file JSON dễ đọc so với XL Các tài liệu XML tương đối khó đọc và
khóa hiểu hơn JSON
Không hỗ trợ namespace Hỗ trợ namespace
1.4 Giới thiệu về Python
Python được sáng tạo bởi Guido van Rossum vào cuối những năm 1980s, đây là một ngôn ngữ lập trình cực kỳ phổ biến được sử dụng để phát triển website và thiết kế nhiều ứng dụng khác nhau Python là ngôn ngữ lập trình hướng đối tượng đa năng Ngôn ngữ này sở hữu cấu trúc dữ liệu cấp cao mạnh mẽ và hệ thống thư viện lớn Python sử dụng cơ chế cấp phát bộ nhớ tự động với cú pháp đơn giản và rõ ràng, giúp người học dễ tiếp cận và làm quen, kể cả đối với những người mới bắt đầu học lập trình
Với cách tiếp cận đơn giản nhưng hiệu quả đối với lập trình hướng đối tượng, Python được sử dụng linh hoạt vào các mục đích dưới đây: Lập trình ứng dụng web, khoa học và phân tích dữ liệu, tạo nguyên mẫu phần mềm, giảng dạy lập trình
Các đặc điểm của Python:
(object-oriented)
Trang 9 Có các bộ thư viện chuẩn và các module ngoài, đáp ứng tất cả các nhu cầu lập trình.
+ (Hoặc Java cho Jython, hoặc Net cho IronPython)
interface)
1.5 Giới thiệu về PHP
PHP là một từ viết tắt của cụm từ Hypertext Pre Processor Là một ngôn ngữ lập trình thường được sử dụng để phát triển ứng dụng Những thứ có liên quan đến viết máy chủ, mã nguồn mở hay mục đích tổng quát Ngoài ra, nó còn rất thích hợp để lập trình web và có thể
dễ dàng nhúng vào trang HTML
Ngày nay, PHP đã chiếm tới hơn 70% web hiện nay, trang web giới thiệu của các công
ty như influxwebtechnologies, Monamedia đều được xây dựng bằng WordPress – một mã nguồn được viết bởi ngôn ngữ PHP Bởi những tính năng như tối ưu hóa cho các ứng dụng web Tốc độ load web nhanh, nhỏ gọn, cú pháp giống C và JAVA Rất dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác hiện nay
PHP có thể được dùng để :
PHP có thể tạo ra các trang web động (sản sinh ra các nội dung HTML/CSS/JavaScript), và đó chính là lý do mà chúng ta nên tìm hiểu về HTML/CSS trước khi đến với PHP
PHP có thể mở, đọc, ghi, xóa file trên máy chủ, tương tác với các phần mềm khác trên máy chủ
PHP có thể kết hợp với các hệ quản trị CSDL, lưu trữ, truy vấn, xử lý dữ liệu vàtrả kết quả về cho người dùng
PHP có thể gửi/nhận cookie, mã hóa, giải mã dữ liệu
PHP có thể phát triển các dịch vụ web (web services)
Trang 10CHƯƠNG 2: MÔ TẢ THUẬT TOÁN
2.1 Bài toán đặt ra
“Quản lý sinh viên” Giả sử muốn xây dựng hệ thống danh sách quản lý sinh viên của mình trường Yêu cầu hệ thống đó cần phải có tính năng thêm, xóa và có thể xuất file JSON
2.2 Giải quyết bài toán
2.2.1 Một số phần mềm có thể dùng giải quyết bài toán
Subline Text, Atom, Adobe dreamweather, Visual Studio Code,… Em sẽ
sử dụng Visual Studio Code để làm đề tài này
2.2.2 Phần mềm XAMPP
XAMPP là một chương trình được sử dụng để tạo máy chủ web (web server) được tích
hợp sẵn với FTP Server, Apache, PHP, MySQL và phpMyAdmin Xampp có giao diện tươngđối dễ hiểu và tiện lợi, tạo điều kiện cho người dùng trong việc bật tắt hay khởi động lại dịch
vụ máy chủ Về ưu điểm, Xampp được ưa chuộng bởi những điểm cộng tuyệt vời như:
Xampp hoạt động tốt trên cả Cross-platform, Linux, Window và MacOS.
Cấu hình đơn giản
Nhiều tính năng nổi trội như giả lập Server, Mail Server, hỗ trợ cài đặt SSL trênLocalhost
XAMPP tích hợp các thành phần với nhiều tính năng như Apache; PHP; MySql; giúp
hỗ trợ phát triển web toàn diện, không cần cài đặt thêm nhiều phần mềm
Mã nguồn mở giúp giao diện quản lý của XAMPP tương đối tiện lợi Bạn hoàn toàn cóthể bật tắt hay khởi động lại dịch vụ máy chủ dễ dàng
Tuy vậy, Xampp còn tồn tại một vài nhược điểm nhất định Hãy cân nhắc chúng để đưa ra
quyết định có nên sử dụng chương trình này không Cụ thể:
Không hỗ trợ Module
Không được tích hợp Version MySQL, do đó, đôi khi sẽ mang đến sự bất tiện chongười dùng
Dung lượng khá nặng, khoảng 141MB cho file cài đặt
Chi tiết giao diện, cấu hình và cách sử dụng của phần mềm XAMPP
Trang 11- Sau khi download phần mềm và tiến hành giải nén, mở phần mềm và tiến hành
“Start” Module “Apache”
Hình 2.2.2 Giao diện XAMPP
2.3 Làm việc với XML và JSON trên nền tảng PHP và Python
2.3.1 Xây dựng tệp XML
Mở phần mềm Visual Studio code chọn File→ Open Folder→xampp / htdocs→
New Folder→Tạo 1 Folder mới để chứa toàn bộ dự án→New File (Tạo file XML) Xâydựng tệp XML, mô tả thông tin cho ít nhất khoảng 05 sinh viên
Trang 12Hình 2.3.1 Tạo và xây dựng tệp dữ liệu XML
2.3.2 Xây dựng python hiển thị tệp tin XML lên màn hình
Cài đặt Python về máy tính→mở IDLE Python→ File→ New File→ xây dựngchương trình xuất dữ liệu khách hàng từ tệp XML (2.3.1) đã lên màn hình
Trang 13Hình 2.3.2 Xây dựng chương trình Python
2.3.3 Xây dựng giao diện chương trình và chức năng bằng PHP
Tạo file PHP ta thao tác giống như tạo file XML như trên:
Sử dụng ngôn ngữ lập trình PHP xây dựng giao diện và các chức năng của hệ thống
Trang 14Hình 2.3.3 Xây dựng giao diện
Trang 15Hình 2.3.4 Xây dựng chức năng thêm
Hình 2.3.5 Xây dựng chức năng xóa
Hình 2.3.6 Xây dựng chức năng xuất file JSON
Trang 16CHƯƠNG 3: SẢN PHẨM THỰC TẾ
3.1 Tệp dữ liệu XML
File “sinhvien.xml” đã được mô tả đầy đủ các trường thông tin về khách hàng được tạo trên
phần mềm ‘Visual Studio Code’ và hiển thị dữ liệu các trường thông tin XML lên Web
Hình 3.1 Dữ liệu các trường thông tin XML trên Web
3.2 Chương trình Python
Sử dụng Python, chương trình này dùng để hiển thị các dữ liệu từ file “sinhvien.xml” lên màn hình
Trang 17Hình 3.2 Dữ liệu được hiển thị lên màn hình từ XML
3.3 PHP sử dụng CSS làm giao diện và các chức năng
CSS là chữ viết tắt của Cascading Style Sheets, nó là một ngôn ngữ được sử dụng để tìm và định dạng lại các phần tử được tạo ra bởi các ngôn
ngữ đánh dấu (HTML) Nói ngắn gọn hơn là ngôn ngữ tạo phong cách chotrang web Bạn có thể hiểu đơn giản rằng, nếu HTML đóng vai trò định dạngcác phần tử trên website như việc tạo ra các đoạn văn bản, các tiêu đề, bảng,…thì CSS sẽ giúp chúng ta có thể thêm style vào các phần tử HTML đó như đổi
bố cục, màu sắc trang, đổi màu chữ, font chữ, thay đổi cấu trúc…
Để giao diện được đẹp mắt ta phải sử dụng thêm CSS để căn chỉnh màusao cho thân thiện và mang lại cảm giác dễ chịu cho người dùng nhất có thể
Trang 19Hình 3.3.2 Form thêm thông tin sinh viên
Trang 20Hình 3.3.3 Hệ thống đã lưu thông tin vào XML
3.3.2 Chức năng Xóa
Danh sách dữ liệu XML được đưa vào giao diện để thuận tiện cho việckiểm tra lại thông tin Sau khi xóa khách hàng bất kì hệ thống sẽ sắp xếp lạidanh sách khách hàng theo thứ tự mới
Trang 21Hình 3.3.4 Form xóa thông tin sinh viên
3.3.3 Chức năng xuất file JSON
Chức năng này giúp ta chuyển dữ liệu XML sang JSON
Hình 3.3.6 File JSON đã được chuyển đổi từ XML
Trang 22TÀI LIỆU THAM KHẢO
4 Bùi Việt Hà, (2020), Python cơ bản, Nhà xuất bản Đại học Quốc Gia Hà Nội.
5 Phạm Thị Nhung, (2008), Giáo Trình Lập Trình Web Với HTML Và JavaScript, Nhà
xuất bản Đại học Quốc Gia TP.HCM
Tiếng Anh
6 Mark Birbeck and et al, (2001), Professional XML (2nd Edition), Wrox Press Ltd.
7 Jeff Friesen, (2019), Java XML and JSON Document Processing for Java SE,
Apress
8 WallPearl, (2008), Simple CSS Standard Edition, WallPearl’sBlog.
9 Võ Duy Tuấn, (2010), PHP Beginning & Intermediate Study Guide, Rasmus Lerdorf.