Thứ Sáu, 8 tháng 8, 2014

Apply XQuery

Mục tiêu bài : Read all usernames in file tomcat-users.xml

Giải quyết :

Đầu tiên ta down và sử dụng thư viện Nux 1.6 ở link sau đây : http://www.javalobby.org/java/forums/t59332.html
Sau đó lấy file XML tomcat user : 
Sau đó khai báo code hàm Main : 

Lưu ý ở đây ta phải truy vấn vào file xml , dùng vòng for cho chạy từ đầu đến cuối lấy ra vị trị của thẻ user

Kết quả thu được : 
Nhận xét : 
-XQuery có thể transfrom dữ liệu từ XML sang XHTML rất dễ dàng
-Sử dụng XQuery làm cho việc lấy dữ liệu từ file XML lên Xpath khá khó khăn

Thứ Năm, 7 tháng 8, 2014

Practice Assignment Module 6 Use TreeWalker to read xml file

Yêu cầu : làm lại Module 6 nhưng sử dụng TreeWalker để đọc file XML

Giải quyết :
Tạo new Project sau đó tôi sẽ sử dụng file XML của bài module 6 đã làm trước đây :

Bài toán yêu cầu sử dụng DOM tree để đọc file XML  nên ta tạo class traverseNode có nội dung sau :

Sau đó code chạy trương trình liên kết với class traverseNode vừa tạo :

Chạy và ta được kết quả : 

Nhận xét : 
So với cách làm trước đây, việc sử dụng TreeWalker đều thể hiện ra được chi tiết 1 cây tài liệu.Tuy nhiên TreeWalker  duy trì được các mối quan hệ thứ bậc của cây con và cho phép chuyển hướng cho hệ thông phân cấp còn NodeIterator thì trình bày cây tài liệu theo giao diện phẳng và các thứ tự được dựa theo thứ tự tài liệu do đó tùy theo mục đích mà ta có thể sử dụng 2 cách đọc dữ liệu XML khác nhau.

Thứ Tư, 6 tháng 8, 2014

Do Practice Assignment Module 6 using NodeIterator

Yêu cầu : Tạo một tài liệu XML có chứa các chi tiết về nhân viên của một tổ chức. Sau đó tạo ra một ứng dụng, trong đó sử dụng các phân tích cú pháp DOM để phân tích các tài liệu XML thành một cây DOM và đi qua qua nó. Ứng dụng này nên thực hiện giao diện TreeWalker để đi qua tất cả các nút có trong cây DOM và in giá trị của các nút.

Giải quyết vấn đề : 
dầu tiên ta tạo XML : 

Sau đó code action : 

Kết quả thu được : 
 

Nhận xét
- có thể chọn lọc các nội dung của tài liệu để hiện thị rõ ràng

Describe overview of DOM Level 2

Định nghĩa : -DOM level 2 được phát triển từ DOM 1 và nó dựa trên các nền tảng interface của DOM 1
Module DOM 2: 
DOM 2 được dựa trên 6 module là : Range ,Event , view , html ,Style ,Traversal .


Module chính của Dom2 được định nghĩa  một bộ các objects  các class để có thể truy xuất   thao tác với nội dung xml được quét.
Các Objects trong tài liệu dom này  các thể hiển của các module khác nhau trong .

*Những interface trong Core và Range cần chú ý.

Event module:
_ được xây dựng dựa trên module level 1 và không bắt buộc phải có, nó giúp chúng ta đăng kí và định nghĩa thêm những luông event khác nhau.
Khi chúng ta bắt đầu đọc thẻ HTML thì ta đã bắt đầu 1 event vào khi kết thúc đọc thì là kết thúc 1 event.

Nhận xét :
Ta làm việc với các module của DOM 2 dễ dàng do cấu trúc không khác j với DOM 1

DOM 2 trang bị các công cụ thực sự mạnh mẽ trong việc truy xuất, đọc và làm việc với tài liệu XML.

Chủ Nhật, 3 tháng 8, 2014

Manipulate DOM tree

Module 1 và 4.
Module 1 :  Tạo một danh sách học sinh student.xml. Viết chương trình cho một giáo viên để đếm số học sinh trong một lớp học. Tạo một DOM treefor phân tích student.xml. Khai báo countStudents () chức năng đệ quy đếm số lượng sinh viên các nút cho đến khi đạt đến nút cuối cùng trong tài liệu theXML.

Giải quyết vấn đề : 
Đầu tiên tôi viết file XML có tên là student : 



Sau đó code ham main : 


Kết quả thu được :


Module 1 : Tạo một tài liệu ứng dụng phân tích cú pháp XML .Ứng dụng này nên sử dụng một Dom Parser phân tích một tài liệu XML có chứa tên của người lao động trong organiaztion, ABC Apparels Ltd, và sau đó in tên của tất cả các nhân viên.

Giải quyết vấn đề : 
Tạo file XML : 

Ở hàm main ta viết code :


Kết quả thu được : 

Nhận xét : 
- Code DOM khá tương đồng với SAX nên dễ hiểu và đọc 
- Đọc các thẻ trong XML nhanh và dễ dàng hơn SAX do ở SAX ta cần khai báo thêm  class extend SAXException và sử dung phương thức getValue trong startElenment.

overview DOM

Bài này sẽ nói về cách chúng ta sử dụng DOM để làm việc với 1 file XML .

Tại sao lại dùng DOM ?
Chúng ta sử dụng DOM vì SAX có một nhược điểm là nó không cho chúng ta truy suất tới bất kì một điểm nào ngay lập tức trong file xml mà phải đọc thông tin 1 cách tuần tự từ trên xuống dưới.Và việc đọc dữ liệu từ file XML dùng SAX rất phức tạp đặc biệt cho những chức năng tìm kiếm phức tạp do không hỗ trợ DTD , không có nhiều thông tin về Lexical và không thể dùng SAX để cập nhật thông tin của 1 file XML .

DOM : 
Để khắc phục các nhược điểm kể trên của SAX thì người ta tạo ra DOM.Nó có tất cả các ưu điểm của SAX và khắc phục được các điểm hạn chế kể trên.

Lợi ích của DOM đem lại : 
_Truy suất được nhiều tài liệu để quản lý các cấu trúc dữ liệu phức tạp cho phép chúng ta thay đổi dữ liệu trong file XML
_ Cho phép chúng ta truy suất đến 1 thành phần ngẫu nhiên và liên tục trong file XML

Các thành phần của DOM : DOM có cấu trúc hình cây.Chúng ta có thể tham khảo qua ảnh sau :
 Cách thức làm việc với DOM :
_Gần như giống với SAX.trong SAX có parser còn ở đây ta có Documentbuilder,muốn có documentbuilder ta có documetbuilder factory.

Nhận xét : 
_ DOM có tất cả các ưu điểm và giải quyết được tất cả các nhược điểm của SAX.
_-DOM sẽ phân tích toàn bộ dữ liệu XML trong bộ nhớ trong khi SAX chỉ phân tích một phần nhỏ trong bộ nhớ

So sánh XmlReader và SAXParser

 SAX Parser : 
_ Quét file XML từ trên xuống dưới nên không tốn nhiều bộ nhớ do vậy người ta sử dụng nó để đọc nhưng file XML cực lớn.
_ Có tốc độ sử lý nhanh do code khá đơn giản, dễ thuộc.
_ Chỉ có thể đọc file XML chứ không tác động gì lên trang XML được.


XML Reader :
_Có thể đọc các phần tử trong file XML cùng một lúc.
_Sử dụng mô hình kéo
_ Code khó đọc hơn.


Nhận xét : cả 2 đều có mục đích là đọc file XML nhưng tùy vào từng chương trình mà ta sử dụng SAXParer hoặc XMLReader.