六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

將SAX加入我們的ASP應(yīng)用中

[摘要]在處理大型的XML文檔的時候,在服務(wù)器端直接使用XML DOM的時候速度是比較慢的,當(dāng)我第一次接觸到SAX的時候,我意識到我們應(yīng)該在服務(wù)器端將DOM和SAX結(jié)合起來以提高我們程序的效率。我們在ASP中最常使用的就是使用COM來完成這個工作(也許你有更好的方法,下面只是包含了最基本的代碼而已 )。 ...
在處理大型的XML文檔的時候,在服務(wù)器端直接使用XML DOM的時候速度是比較慢的,當(dāng)我第一次接觸到SAX的時候,我意識到我們應(yīng)該在服務(wù)器端將DOM和SAX結(jié)合起來以提高我們程序的效率。我們在ASP中最常使用的就是使用COM來完成這個工作(也許你有更好的方法,下面只是包含了最基本的代碼而已 )。 

首先我們創(chuàng)建一個DLL來封裝SAX的功能好了。
測試環(huán)境:Win2k Prof.+MSXML3.0 sp1+VB6
要使用SAX我們必須引用(Reference)Microsoft XML 3.0(我的機(jī)器安裝的是MSXML3.0 sp1)
工程名:SAXTesting
類名:clsSAXTest
方法:Public Function MyXMLParser(XML文件物理路徑) as DOMDocument
代碼:
Option Explicit

Public Function MyXMLParser(ByVal strXMLFilePath As Variant) As DOMDocument
Dim reader As New SAXXMLReader
Dim contentHandler As New ContentHandlerImpl
Dim errorHandler As New ErrorHandlerImpl


Set reader.contentHandler = contentHandler
Set reader.errorHandler = errorHandler
On Error GoTo ErrorHandle
Dim XMLFile As String
XMLFile = strXMLFilePath
reader.parseURL (XMLFile)

Dim xmlDoc As MSXML2.DOMDocument
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlDoc.loadXML strXML
Set MyXMLParser = xmlDoc
Set xmlDoc = Nothing
Exit Function

ErrorHandle:
Err.Raise 9999, "My XML Parser", Err.Number & " : " & Err.Description
End Function
類名:modPublic
代碼:
Option Explicit
Global strXML As String
類名:ContentHandlerImpl
代碼:
Option Explicit
Implements IVBSAXContentHandler

Private Sub IVBSAXContentHandler_startElement(strNamespaceURI As String, strLocalName As String, 
strQName As String, ByVal attributes As MSXML2.IVBSAXAttributes)

Dim i As Integer

intLocker = intLocker + 1
If intLocker > 1 Then

End If
strXML = strXML & "<" & strLocalName

For i = 0 To (attributes.length - 1)
strXML = strXML & " " & attributes.getLocalName(i) & "=""" & attributes.getValue(i) & 
""""
Next
strXML = strXML & ">"

If strLocalName = "qu" Then
Err.Raise vbObjectError + 1, "ContentHandler.startElement", "Found element <qu>"
End If
End Sub
[page_break]Private Sub IVBSAXContentHandler_endElement(strNamespaceURI As String, strLocalName As String, 
strQName As String)

strXML = strXML & "</" & strLocalName & ">"

End Sub
Private Sub IVBSAXContentHandler_characters(text As String)
text = Replace(text, vbLf, vbCrLf)
strXML = strXML & text

End Sub
Private Property Set IVBSAXContentHandler_documentLocator(ByVal RHS As MSXML2.IVBSAXLocator)
End Property
Private Sub IVBSAXContentHandler_endDocument()
End Sub
Private Sub IVBSAXContentHandler_endPrefixMapping(strPrefix As String)
End Sub
Private Sub IVBSAXContentHandler_ignorableWhitespace(strChars As String)
End Sub
Private Sub IVBSAXContentHandler_processingInstruction(target As String, data As String)

strXML = strXML & "<?" & target & " " & data & ">"
End Sub
Private Sub IVBSAXContentHandler_skippedEntity(strName As String)
End Sub
Private Sub IVBSAXContentHandler_startDocument()
End Sub
Private Sub IVBSAXContentHandler_startPrefixMapping(strPrefix As String, strURI As String)
End Sub

類名:ErrorHandlerImpl
代碼:
Option Explicit
Implements IVBSAXErrorHandler

Private Sub IVBSAXErrorHandler_fatalError(ByVal lctr As IVBSAXLocator, msg As String, ByVal 
errCode As Long)

strXML = strXML & "*** error *** " & msg

End Sub
Private Sub IVBSAXErrorHandler_error(ByVal lctr As IVBSAXLocator, msg As String, ByVal errCode As 
Long)

End Sub
Private Sub IVBSAXErrorHandler_ignorableWarning(ByVal oLocator As MSXML2.IVBSAXLocator, 
strErrorMessage As String, ByVal nErrorCode As Long)
End Sub

OK,讓我們編譯這個DLL,應(yīng)該是沒什么問題了。讓我們在ASP中看看運(yùn)行的結(jié)果怎么樣:
XML文件:
<?xml version="1.0"?>
<root foo="bar.com">
<PARTS>
<PART foo="bar.com" foo2="bar.com">
<PARTNO>12345</PARTNO>
<DESCRIPTION>VIP - Very Important Part</DESCRIPTION>
</PART>
<PART>
<PARTNO>5678</PARTNO>
<DESCRIPTION>LIP - Less Important Part</DESCRIPTION>
</PART>
</PARTS>
</root>
ASP文件:
<%
Set a = CreateObject("SAXTesting.clsSAXTest")
Set xmlDoc = a.MyXMLParser("D:\test.xml")
Response.contenttype="text/xml"
response.write xmlDoc.xml
set xmlDoc=nothing
set a=nothing
%>



主站蜘蛛池模板: 色综合久久婷婷天天 | 中文字幕精品在线视频 | 日本不卡视频一区二区 | 天天狠天天透天干天天怕处 | 午夜黄色网址 | 日韩精品视频在线观看免费 | 亚洲一区免费在线 | 日日射影院 | 日本xxx在线 | 色一欲一性一乱一区二区三区 | 亚洲 欧美 日韩 另类 | 亚洲免费在线 | 青草免费免费观看视频在线 | 青青久在线视频免费观看 | 亚洲欧美日韩激情在线观看 | 日韩中文字幕视频在线 | 亚洲 日本 欧美 | 午夜精品久久久久 | 天天躁夜夜躁狂狂躁综合 | 最新在线观看精品国产福利片 | 色视频网站色视频播放 | 亚洲成人看片 | 亚洲精品第三页 | 欧美亚洲综合在线 | 手机在线日韩高清理论片 | 亚洲欧美v国产一区二区 | 欧美性黄色| 亚洲啪视频 | 欧美一级做一级爱a做片性 欧美一级做一a做片性视频 | 性免费网站| 五月天激情婷婷大综合 | 日本在线不卡免 | 欧美一区二区影院 | 中文字幕欧美在线 | 日日干夜夜艹 | 揉美女胸的黄网站 | 日产在线观看 | 四虎在线免费 | 日韩在线观看一区二区三区 | 青青视频免费看 | 亚洲国产第一页 |