Nếu lâ ̣p trình bằng VB6 ba ̣n có thể dùng Document Object Model DOM hay Simple API for XML SAX của Microsoft để giúp đở ba ̣n trong công tác parsing phân tích, sắp đă ̣t ca
Trang 3Các ứng du ̣ng của mô ̣t XML
Parser
XML càng lúc càng trở nên thi ̣nh hành Dầu muốn hay không, nếu là software engineer, trước sau gì ba ̣n cũng phải lâ ̣p trình với XML Nếu lâ ̣p trình bằng VB6 ba ̣n có thể dùng Document Object Model (DOM) hay Simple API for XML (SAX) của Microsoft để giúp đở
ba ̣n trong công tác parsing (phân tích, sắp
đă ̣t) các XML files
DOM đo ̣c nguyên mô ̣t XML file rồi parse nó thành mô ̣t Tree có đẳng cấp trong bô ̣ nhớ, tức là mô ̣t node cha của Document có những nodes con đa ̣i diê ̣n cho comments,
Trang 4tags, directives và text (go ̣i là XML entities)
Trong khi đó SAX đo ̣c mô ̣t XML file và trong khi parse sẽ generate những Events cho hay khi nào nó gă ̣p phải những XML entities SAX không ta ̣o ra mô ̣t Tree nào cả, nên các ứng dụng tùy thuô ̣c vào cách ta handle các Events từ SAX Dĩ nhiên là SAX nhỏ và đơn giản hơn DOM nhiều
Để không phải tùy thuô ̣c hoàn toàn vào XML parser của người khác và để giúp
ba ̣n có ý niê ̣m thực tế về cách làm viê ̣c của mô ̣t XML Parser, trong bài nầy ta sẽ triển khai mô ̣t XML Parser đơn giản (Simple XML Parser - SXMLParser) hoàn toàn bằng VB6 và áp dụng nó mô ̣t cách thực tiển để làm mẫu SXMLParser tuy
Trang 5nhỏ nhưng có những đă ̣c tính tương tơ ̣ như SAX và dĩ nhiên ba ̣n có thể tha hồ sửa đổi, thêm những features tùy ý
Các áp dụng trước mắt là làm đe ̣p (Pretty) XML code, thêm màu cho XML content khi hiển thi ̣ trong mô ̣t WebBrowser như trong hình dưới đây:
Trang 6WriteTextFile GetLocalDirectory & "Temp.XML", TStr
' Place the XML filename into TextBox txtFilename
txtFilename.Text = GetLocalDirectory &
"Temp.XML"
' Emulating User's action of clicking the
commandbutton Parse
cmdParse_Click
' If there're something as a result, copy everything from the Listbox lstHTML
' except for the first and last line, which contain HTML header/footer.
' Select the required lines from the Textbox
If lstHTML.ListCount > 2 Then
For i = 1 To lstHTML.ListCount - 2
lstHTML.Selected(i) = True
Next
' Emulating User's action of clicking the
commandbutton Copy
CmdCopy_Click
End If
End Sub
Trang 7Kỹ thuâ ̣t XML
Vovisoft © 2000 All rights reserved.
Last Updated: 25 July 2001 Webmaster