Học XML tiếng Việt

Câu code HTML trên có chứa hai markup Tags, <P>và <STRONG>. Mỗi cặp

Tags gói dữliệu nó đánh dấu giữa opening Tagvà closing Tag. Hai closing

Tags ở đây là </P>và </STRONG>. Tất cảnhững gì nằm bên trong một cặp

Tags được gọi là Element. Đểnói thêm đặc tính của một Element, ta có thể

nhét Attributenhư aligntrong opening Tag của Element ấy dưới dạng

AttributeName="value", thí dụnhư align="center".

Vì Tags trong HTML được dùng đểformat (trìnhbày) tài liệu nên browser cần

biết ý nghĩa của mỗi Tag. Một browser hay HTML parser sẽthu thập các chỉthị

sau từcâu HTML trên:

1. Bắt đầu một Paragraph mới và đặt Text ởgiữa trang (<P

align="center">).

2. Hiển thịcâu Chào mừng bạn đến thăm

3. Hiển thịchữ Vovisoftcách mạnh mẽ(<STRONG>Vovisoft</STRONG>).

4. Hiển thịcâu Web site

5. Gặp điểm cuối của Paragraph (</P>)

pdf68 trang | Chuyên mục: XML | Chia sẻ: dkS00TYs | Lượt xem: 2980 | Lượt tải: 1download
Tóm tắt nội dung Học XML tiếng Việt, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Open TextStream for Output 
 Set TS = Fs.OpenTextFile(App.Path & "\Library.htm", ForWriting, 
False, TristateUseDefault) 
 TS.Write HTMLCode ' Write the whole HTML string in one stroke 
 TS.Close ' Close the Text Stream 
 Set Fs = Nothing ' Dispose FileSystem Object 
 ' Display the HTML file in a listbox 
 PopulateListBoxFromFile lstHTML, "Library.htm", False 
End Sub 
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: 
 Peter Greenway 
 234 King St, Newtown, NSW, Australia 
 (612) 97463534 
 (612) 97463535 
 pgreenway@ozemail.com.au 
 Sue Williams 
 72/324 John St, Cabramatta, NSW, 
Australia 
 (612) 9745 2263 
 (612) 9745 2264 
 swilliams@bigpond.com.au 
 Helen Clark 
 74 GreenHill Rd, Wayville, SA, 
Australia 
 (618) 9756 3635 
 (618) 9756 3636 
 hclark@tgp.com.au 
 Martin Howard 
 652 Broadbeach Drive, St Kilda, Melbourne, 
Australia 
 (613) 9756 2312 
 (613) 9756 2313 
 mhoward@island.net.au 
 Pam Rose 
 24/274 Stancey St, Bankstown, NSW, 
Australia 
 (612) 9867 9821 
 (612) 9867 9822 
 prose@globalfreeway.com.au 
 Le Duc Hong 
 3 Rawson St, Epping, NSW,Australia 
 (612) 9783 1442 
 (612) 9783 1445 
 ldhong@dingoblue.com.au 
 Âu Địch Xương 
 435 Trần Hưng Đạo, Vỉnh Long , Việt 
Nam 
 847 74847 
 847 9682 
 dixonau@vovisoft.com 
 Lý Phúc Hiếu 
 234 Lý Công Uẩn, Saigon, Việt Nam 
 827 3746 
 827 4645 
 lyhieu@vnn.vn 
Content của people.dtd như sau: 
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: 
Bạn có thể thử viết thêm code để Edit các chi tiết của một Person có sẵn. 
Bạn có thể download chương trình mẫu DOMTree.zip để 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 , 
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: 
Dùng DOM để display XML thành nhiều tầng 
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 Library.xml vào DOM. XML file 
nầy còn có một Schema file tên LibrarySchema.xml. 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 Schema file. 
Content của Library.xml như sau, lưu ý hàng thứ 7 nhắc đến 
LibrarySchema.xml mà DOM sẽ dùng để validate data trong XML file: 
 Northmead Local Library 
 C++ Programming for Beginners 
 Claude 
 Schwartz 
 005.133/C 
 XML Users Journal August 1999 
 1999-08-01 
 005.133/C 
 Titanic 
 James Cameron 
 643.11/T 
 The C Programming Language 
 Brian 
 Kernighan 
 Dennis 
 Ritchie 
 005.133/C2 
Content của LibrarySchema.xml như sau: 
<Schema xmlns="urn:schemas-microsoft-com:xml-data" 
xmlns:dt="urn:schemas-microsoft-com:datatypes"> 
 <!-- Copyright 2000 Wattle Software  This 
Schema is based on XML-Schema support found in Microsoft Internet 
Explorer 5. --> 
 <!-- first we need to declare all elements that will appear only as 
child elements --> 
 <ElementType name="price" content="textOnly" 
dt:type="fixed.14.4"> 
 <ElementType name="title" content="textOnly" 
dt:type="string"> 
 <ElementType name="artist" content="textOnly" 
dt:type="string"> 
 <ElementType name="callno" content="textOnly" 
dt:type="string"> 
 <ElementType name="date" content="textOnly" 
dt:type="date"> 
 <ElementType name="online_url" content="textOnly" 
dt:type="string"> 
 <AttributeType name="availableforloan" 
dt:type="string"> 
 <!-- Now we can define the more interesting elements (i.e. those 
that can have children ) --> 
 <!-- An author can contain EITHER: a name, or a sequence of 
first-name then last-name --> 
 <!-- A director can contain EITHER: a name, or a sequence of 
first-name then last-name --> 
 <!-- declare hardback as an optional attribute of journal with 
default value of "no" --> 
Việc đầu tiên khi chạy program là bạn click nút Load XML and Display in 
TreeView. Ðợi một chút xíu, Tree của XML sẽ hiện ra trong TreeView. 
Ðồng thời Content của XML file cũng được loaded vào ListBox lstXMLSource và 
bạn sẽ thấy nó nếu bạn click Tab XML Source. Dĩ nhiên bạn có thể display bất 
cứ một XML file nào nếu bạn để nó vào folder của program và enter Filename 
của nó vào TextBox txtXMLFileName trứớc khi click nút Load XML and 
Display in TreeView. 
Trong program nầy ta dùng Object IXMLDOMNode, thay vì Object 
IXMLDOMElement để lần lượt đi qua mọi nodes của XML DOM. Program gọi 
Sub AddNode để bỏ các Nodes vào TreeView. Ðặc biệt là AddNode gọi chính 
nó ở bên trong Sub AddNode. Kỹ thuật nầy gọi là recursive, mà ta thường lấy 
dùng trong những cấu trúc giống như nhánh cây, khi chính một Con lại có nhiều 
Con khác. Listing của Sub AddNode như sau: 
Private Sub AddNode(ByRef oElem As IXMLDOMNode, Optional ByRef 
oTreeNode As Node) 
 ' Add a Node to the TreeView 
 Dim oNewNode As Node 
 Dim oNodeList As IXMLDOMNodeList 
 Dim i As Long 
 ' Create the new node 
 If oTreeNode Is Nothing Then 
 ' Go through here when creating the top level nodes, i.e. 
childNodes of root node 
 Set oNewNode = TreeView.Nodes.Add 
 Else 
 Set oNewNode = TreeView.Nodes.Add(oTreeNode, tvwChild) 
 End If 
 ' Expand TreeView node 
 oNewNode.Expanded = True 
 ' Prepare the Text for the TreeView Node 
 If oElem.nodeType = NODE_ELEMENT Then 
 ' Element Node type. Use Node name and Attribute values 
 oNewNode.Text = BuildNodeLabel(oElem) 
 ElseIf (oElem.nodeType = NODE_TEXT) Then 
 ' Last Node in the branch. Use Text 
 oNewNode.Text = oElem.Text 
 ElseIf (oElem.nodeType = NODE_COMMENT) Then 
 ' Comment Node. Display the comment 
 oNewNode.Text = "Comment:" & oElem.Text 
 Else 
 ' Display Nodename as default 
 oNewNode.Text = oElem.nodeName 
 End If 
 ' process the childNodes which form a NodeList 
 Set oNodeList = oElem.childNodes 
 ' Iterate through each childNode 
 For i = 0 To oNodeList.length - 1 
 ' Recursively call AddNode to add more nodes as children of 
oNewNode, 
 ' treating AddNode just like another Sub 
 AddNode oNodeList.Item(i), oNewNode 
 Next 
End Sub 
Có ba loại Nodes ta xử lý ở đây: NODE_ELEMENT, NODE_TEXT và 
NODE_COMMENT. Element Node thì có Node , Attributes và Con. Text Node và 
Comment Node thì chỉ có text. 
Bạn có thể download chương trình mẫu XMLTreeDOM.zip để 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 , 
kế đó chọn một class, thí dụ như IXMLDOMNode 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: 

File đính kèm:

  • pdfHọc XML tiếng Việt.pdf
Tài liệu liên quan