Tìm kiếm full text:
Google Ajax Loading


Gá»­i Ãá» Tài Má»›i Trả lá»i
  #1 (permalink)  
Old 01-11-2008, 11:47 AM
tuanquynh's Avatar
Cá nhân
Lập trình viên
Thành viên thứ: 151
Tham gia: Aug 2008
Bài viết: 421
   
Thông Tin
Tên Thật: Dương Tuấn Quỳnh
Äến từ: Hà Tây
Giới tính:
Công việc: Lập trình viên
Sở thích: Secret.
Äiện thoại: 0974011223
Cám ơn: 70
ÄÆ°á»£c cám Æ¡n 549 lần trong 179 bài viết
Send a message via Yahoo to tuanquynh Send a message via Skype™ to tuanquynh
Post Dùng DOM để display XML trong TreeView


I nternet Explorer 5.0 cho ta Document Object Model (DOM) ActiveX gá»i là MSXML.DLL mà ta có thể dùng trong VB6. Ãầu tiên là Microsoft XML, version 2.0, tiếp theo đó là Microsoft XML, v2.6 và má»›i nhất là Microsoft XML, v3.0. Cả ba DLL nầy Ä‘á»u có trong danh sách các References mà ta có thể include khi dùng IDE Menu command Project | References.
Khi ta Load má»™t XML file vào DOM, nó tá»± động parse XML data để build má»™t Tree gồm nhiá»u nodes vá»›i thứ bậc cha, con bên trong. Dá»±a theo đó ta có thể display cái DOM Tree ấy trong má»™t TreeView để có thể hình dung được cấu trúc cá»§a XML data.

Trong thí dụ dưới đây, ta Load má»™t XML file tên people.xml vào DOM. XML file nầy còn có má»™t Data Type Definition file tên people.dtd. Khi DOM load XML file, ta có thể dặn nó kiểm (validate) xem XML data có theo đúng tiêu chuẩn đòi há»i trong dtd file.
Content của people.xml như sau, lưu ý hàng thứ hai nhắc đến people.dtd mà DOM sẽ dùng để validate data trong XML file:

 <?xml version="1.0"?><!DOCTYPE PEOPLE SYSTEM "people.dtd"><PEOPLE>	<PERSON PERSONID="p1">		<NAME>Peter Greenway</NAME>		<ADDRESS>234 King St, Newtown, NSW, Australia</ADDRESS>		<TEL>(612) 97463534</TEL>		<FAX>(612) 97463535</FAX>		<EMAIL>pgreenway@ozemail.com.au</EMAIL>	</PERSON>	<PERSON PERSONID="p2">		<NAME>Sue Williams</NAME>		<ADDRESS>72/324 John St, Cabramatta, NSW, Australia</ADDRESS>		<TEL>(612) 9745 2263</TEL>		<FAX>(612) 9745 2264</FAX>		<EMAIL>swilliams@bigpond.com.au</EMAIL>	</PERSON>	<PERSON PERSONID="p3">		<NAME>Helen Clark</NAME>		<ADDRESS>74 GreenHill Rd, Wayville, SA, Australia</ADDRESS>		<TEL>(618) 9756 3635</TEL>		<FAX>(618) 9756 3636</FAX>		<EMAIL>hclark@tgp.com.au</EMAIL>	</PERSON>	<PERSON PERSONID="p4">		<NAME>Martin Howard</NAME>		<ADDRESS>652 Broadbeach Drive, St Kilda, Melbourne, Australia</ADDRESS>		<TEL>(613) 9756 2312</TEL>		<FAX>(613) 9756 2313</FAX>		<EMAIL>mhoward@island.net.au</EMAIL>	</PERSON>	<PERSON PERSONID="p5">		<NAME>Pam Rose</NAME>		<ADDRESS>24/274 Stancey St, Bankstown, NSW, Australia</ADDRESS>		<TEL>(612) 9867 9821</TEL>		<FAX>(612) 9867 9822</FAX>		<EMAIL>prose@globalfreeway.com.au</EMAIL>	</PERSON>	<PERSON PERSONID="p6">		<NAME>Le Duc Hong</NAME>		<ADDRESS>3 Rawson St, Epping, NSW,Australia</ADDRESS>		<TEL>(612) 9783 1442</TEL>		<FAX>(612) 9783 1445</FAX>		<EMAIL>ldhong@dingoblue.com.au</EMAIL>              </PERSON>	<PERSON PERSONID="p7">		<NAME>Âu Äịch Xương</NAME>		<ADDRESS>435 Trần Hưng Äạo, Vỉnh Long , Việt Nam</ADDRESS>		<TEL>847 74847</TEL>		<FAX>847 9682</FAX>		<EMAIL>dixonau@vovisoft.com</EMAIL>	</PERSON>	<PERSON PERSONID="p8">		<NAME>Lý Phúc Hiếu</NAME>		<ADDRESS>234 Lý Công Uẩn, Saigon, Việt Nam </ADDRESS>		<TEL>827 3746</TEL>		<FAX>827 4645</FAX>		<EMAIL>lyhieu@vnn.vn</EMAIL>	</PERSON></PEOPLE>
 

Content của people.dtd như sau:

 <!ELEMENT PEOPLE ( PERSON+ ) ><!ELEMENT PERSON ( NAME, ADDRESS, TEL, FAX, EMAIL ) ><!ATTLIST PERSON PERSONID ID #REQUIRED><!ELEMENT NAME (#PCDATA)><!ELEMENT ADDRESS ( #PCDATA ) ><!ELEMENT TEL ( #PCDATA ) ><!ELEMENT FAX ( #PCDATA ) ><!ELEMENT EMAIL ( #PCDATA ) >
 

Trong file people.dtd phía trên ta có:
  1. Hàng thứ nhất nói rằng cái root Node (Node gốc) tên là PEOPLE. Nó có má»™t hay nhiá»u Nodes con tên PERSON.
  2. Hàng thứ nhì nói mỗi Node PERSON có những Nodes con tên NAME, ADDRESS, TEL, FAX và EMAIL.
  3. Các hàng còn lại cho biết má»—i Node NAME, ADDRESS, TEL, FAX, EMAIL Ä‘á»u chứa text string.
Việc đầu tiên khi chạy program là bạn click nút Load XML into DOM and Display Tree. Ãợi má»™t chút xíu, Tree cá»§a XML sẽ hiện ra trong TreeView. Ãồng thá»i XML data cÅ©ng được displayed trong WebBrowser phía bên phải.
Sau đó, má»—i lần bạn click lên dấu+ hay - bên trái tên cá»§a má»™t ngưá»i trong TreeView, chi tiết cá»§a ngưá»i đó sẽ được display trong các TextBox phía trên.
Sau khi selected má»™t Person, bạn có thể Delete tên đó bằng cách click nút Delete. Ngoài ra bạn cÅ©ng có thể thêm tên má»™t ngưá»i bằng cách click nút Clear to Add, Ä‘iá»n các chi tiết cá»§a Person vào các TextBoxes rồi click Save new record. Má»—i lần bạn Delete má»™t Person hay Add má»™t New Person, program tá»± động Save kết quả xuống XML file.

Hai TextBoxes txtName và txtAddress không phải là TextBoxes thông thưá»ng nhưng là TextBoxes cá»§a ActiveX Form2. Các Controls cá»§a Form2 có thể display chữ Việt bằng Unicode. Do đó nếu bạn Click lên tên Lý Phúc Hiếu chẳng hạn, bạn sẽ thấy tên và địa chỉ được display trong Font Tahoma có dấu đầy đủ cá»§a chữ Việt. Muốn có các Controls cá»§a Form2 để display chữ Việt bạn dùng menu command Project | Components để popup Components Dialog, kế đó click Microsoft Forms 2.0 Object Library như trong hình dưới đây:
[Chỉ thành viên mới nhìn thấy Link. ]
Bạn có thể thử viết thêm code để Edit các chi tiết của một Person có sẵn.

[Chỉ thành viên mới nhìn thấy Link. ]

Bạn có thể [Chỉ thành viên mới nhìn thấy Link. ] để chạy thử.

Ãể biết thêm các Properties và Methods cá»§a các Classes trong MSXML, từ trong VB6 IDE bạn press F2 để display Object Browser. Khi Object Browser Dialog hiện ra, chá»n MSXML2 từ ComboBox phía trên Ä‘ang display <All Libraries>, kế đó chá»n má»™t class, thí dụ như IXMLDOMElement từ ListBox bên trái, chi tiết cá»§a selected Class sẽ được displayed trong ListBox bên phải như trong hình dưới đây:
[Chỉ thành viên mới nhìn thấy Link. ]

[right][size=1][url=http://bachkhoaaptech.com/forum/showthread.php?p=2074]Copyright © Diá»…n Äàn BachKhoa-Aptech - Posted by tuanquynh[/url][/size][/right]
 
Chữ ký
__*-*Mr.Quynh*-*__

[right][size=1][url=http://bachkhoaaptech.com/forum/showthread.php?p=2074]Copyright © Diá»…n Äàn BachKhoa-Aptech - tuanquynh's Signature[/url][/size][/right]
 
Trả Lá»i Vá»›i Trích Dẫn
Thành viên đã cảm ơn tuanquynh vỠbài viết này:
Nhung (06-04-2009)
Click vào banner dưới đây, để ủng hộ diễn đàn nhé bạn
Trả lá»i


Ãang Ä‘á»c: 1 (0 thành viên và 1 khách)
 
Ãiá»u Chỉnh
Xếp Bài

Quyá»n Sá»­ Dụng Ở Diá»…n Ãàn
Bạn không thể Gửi bài mới
Bạn không thể Gá»­i trả lá»i
Bạn không thể Gửi File đính kèm
Bạn không thể sửa bài viết của mình

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt
Trackbacks are Mở
Pingbacks are Mở
Refbacks are Mở



Liên Lạc - Trang Chủ - Lưu Trữ - Trở Lên Trên