?? a beginner's guide to the xml dom.htm
字號:
<p><font size="3">4</font>
</td>
</tr>
</table>
<p align="JUSTIFY"><font size=3>MSXML</font><font face="宋體" lang="ZH-CN" size=3>解析器實現了一些有用的方法,你在調入一個大的文檔時可以用這些方法追蹤調入過程的狀態。這些方法對從</font><font size=3>Internet</font><font face="宋體" lang="ZH-CN" size=3>上異步的調入文檔也很有幫助。</font></p>
<p align="JUSTIFY"> <font face="宋體" lang="ZH-CN" size=3>要打開一個</font><font size=3>Internet</font><font face="宋體" lang="ZH-CN" size=3>上的文檔,你需要提供絕對</font><font size=3>URL</font><font face="宋體" lang="ZH-CN" size=3>,并且必須加</font><font size=3>http://</font><font face="宋體" lang="ZH-CN" size=3>前綴。下面是一個例子。</font></p>
<p align="JUSTIFY"><b><font size="3">xDoc.async = False</font></b></p>
<p align="JUSTIFY"><b><font size="3">If xDoc.Load("http://www.develop.com/hp/brianr/cds.xml")
Then</font></b></p>
<p align="JUSTIFY"><b><font size=3>	' </font><font face="宋體" lang="ZH-CN" size=3>文檔調入成功</font></b></p>
<p align="JUSTIFY"> <b><font face="宋體" lang="ZH-CN" size=3>	</font><font size=3>'
</font><font face="宋體" lang="ZH-CN" size=3>作我們喜歡作的事</font></b></p>
<p align="JUSTIFY"><font size="3"><b>Else</b></font></p>
<p align="JUSTIFY"><b><font size=3>	' </font><font face="宋體" lang="ZH-CN" size=3>文檔調入失敗</font></b></p>
<p align="JUSTIFY"><font size="3"><b>End If</b></font></p>
<p align="JUSTIFY"><font face="宋體" lang="ZH-CN" size=3>將</font><b><font size=3>Async</font></b><font face="宋體" lang="ZH-CN" size=3>屬性設置為</font><b><font size=3>False</font></b><font face="宋體" lang="ZH-CN" size=3>,這樣在文檔調入完成之前,解析器不會將控制權交給你的代碼。如果把</font><b><font size=3>Async</font></b><font face="宋體" lang="ZH-CN" size=3>保存為</font><b><font size=3>True</font></b><font face="宋體" lang="ZH-CN" size=3>,你在訪問文檔時必須檢查</font><b><font size=3>ReadyState</font></b><font face="宋體" lang="ZH-CN" size=3>屬性或者利用</font><b><font size=3>DOMDocument</font></b><font face="宋體" lang="ZH-CN" size=3>的事件在文檔可以訪問時提示你的代碼。</font></p>
<p align="JUSTIFY"><font size=3> </font><font face="宋體" lang="ZH-CN" size=3><a name="5"></a>處理錯誤:</font></p>
<p align="JUSTIFY"> <font face="宋體" lang="ZH-CN" size=3>你的文檔可能因為各種原因而調入失敗,最常見的原因是提供給解析器的文檔名不正確,另一個常見的原因是</font><font size=3>XML</font><font face="宋體" lang="ZH-CN" size=3>文檔不合法。</font></p>
<p align="JUSTIFY"> <font face="宋體" lang="ZH-CN" size=3>默認的解析器會驗證你的文檔是否符合某個</font><font size=3>DTD
</font><font face="宋體" lang="ZH-CN" size=3>或者</font><font size=3> schema</font><font face="宋體" lang="ZH-CN" size=3>,你可以不讓解析器執行驗證,在執行</font><b><font size=3>Load</font></b><font face="宋體" lang="ZH-CN" size=3>方法之前,將</font><b><font size=3>DOMDocument</font></b><font face="宋體" lang="ZH-CN" size=3>的屬性</font><b><font size=3>ValidateOnParse</font></b><font face="宋體" lang="ZH-CN" size=3>為</font><b><font size=3>False</font></b><font face="宋體" lang="ZH-CN" size=3>。</font></p>
<p align="JUSTIFY"><b><font size="3">Dim xDoc As MSXML.DOMDocument</font></b></p>
<p align="JUSTIFY"><b><font size="3">Set xDoc = New MSXML.DOMDocument</font></b></p>
<p align="JUSTIFY"><b><font size="3">xDoc.validateOnParse = False</font></b></p>
<p align="JUSTIFY"><b><font size="3">If xDoc.Load("C:\My Documents\cds.xml")
Then</font></b></p>
<p align="JUSTIFY"><b><font size=3> ' </font><font face="宋體" lang="ZH-CN" size=3>文檔調入成功</font></b></p>
<p align="JUSTIFY"><b><font size=3>' </font><font face="宋體" lang="ZH-CN" size=3>作我們喜歡作的事</font></b></p>
<p align="JUSTIFY"><font size="3"><b>Else</b></font></p>
<p align="JUSTIFY"><b><font size=3>' </font><font face="宋體" lang="ZH-CN" size=3>文檔調入失敗</font></b></p>
<p align="JUSTIFY"><font size="3"><b>End If</b></font></p>
<p align="JUSTIFY"><font size=3> </font><font face="宋體" lang="ZH-CN" size=3>事先關閉驗證功能不是個好主意,它會帶來許多問題,至少它會是你提供錯誤格式的數據給你的用戶。</font></p>
<p align="JUSTIFY"><font size=3> </font><font face="宋體" lang="ZH-CN" size=3>你可以通過訪問</font><b><font size=3>ParseError</font></b><font face="宋體" lang="ZH-CN" size=3>對象來從解析器那兒獲得有關錯誤類型的信息。創建一個</font><b><font size=3>IXMLDOMParseError</font></b><font face="宋體" lang="ZH-CN" size=3>界面的引用,然后把它指向文檔自身的</font><b><font size=3>ParseError</font></b><font face="宋體" lang="ZH-CN" size=3>對象。</font><b><font size=3>IXMLDOMParseError</font></b><font face="宋體" lang="ZH-CN" size=3>界面實現了七種屬性來使你獲得錯誤原因。</font></p>
<p align="JUSTIFY"> <font face="宋體" lang="ZH-CN" size=3>下面的例子顯示了一個信息框,列出了</font><b><font size=3>ParseError</font></b><font face="宋體" lang="ZH-CN" size=3>對象中所有錯誤信息。</font></p>
<p align="JUSTIFY"><b><font size="3">Dim xDoc As MSXML.DOMDocument</font></b></p>
<p align="JUSTIFY"><b><font size="3">Set xDoc = New MSXML.DOMDocument</font></b></p>
<p align="JUSTIFY"><b><font size="3">If xDoc.Load("C:\My Documents\cds.xml")
Then</font></b></p>
<p align="JUSTIFY"><b><font size=3> ' </font><font face="宋體" lang="ZH-CN" size=3>文檔調入成功</font></b></p>
<p align="JUSTIFY"><b><font size=3>' </font><font face="宋體" lang="ZH-CN" size=3>作我們喜歡作的事</font></b></p>
<p align="JUSTIFY"><font size="3"><b>Else</b></font></p>
<p align="JUSTIFY"><b><font size=3>' </font><font face="宋體" lang="ZH-CN" size=3>文檔調入失敗</font></b></p>
<p align="JUSTIFY"><font size="3"><b>Dim strErrText As String</b></font></p>
<p align="JUSTIFY"><font size="3"><b>Dim xPE As MSXML.IXMLDOMParseError</b></font></p>
<p align="JUSTIFY"><b><font size=3> ' </font><font face="宋體" lang="ZH-CN" size=3>獲得</font><font size=3>parseError</font><font face="宋體" lang="ZH-CN" size=3>對象</font></b></p>
<p align="JUSTIFY"><font size="3"><b>Set xPE = xDoc.parseError</b></font></p>
<p align="JUSTIFY"><font size="3"><b> With xPE</b></font></p>
<p align="JUSTIFY"><b><font size=3> strErrText = "</font><font face="宋體" lang="ZH-CN" size=3>你的</font><font size=3>XML
Document </font><font face="宋體" lang="ZH-CN" size=3>不能調入</font><font size=3>"
& _</font></b></p>
<p align="JUSTIFY"> <b><font size=3> "</font><font face="宋體" lang="ZH-CN" size=3>原因是</font><font size=3>."
& vbCrLf & _</font></b></p>
<p align="JUSTIFY"> <b><font size=3> "</font><font face="宋體" lang="ZH-CN" size=3>錯誤</font><font size=3>
#: " & .errorCode & ": " & xPE.reason & _</font></b></p>
<p align="JUSTIFY"> <font size="3"><b>"Line #: " & .Line & vbCrLf
& _</b></font></p>
<p align="JUSTIFY"> <font size="3"><b>"Line Position: " & .linepos &
vbCrLf & _</b></font></p>
<p align="JUSTIFY"> <font size="3"><b>"Position In File: " & .filepos
& vbCrLf & _</b></font></p>
<p align="JUSTIFY"> <font size="3"><b>"Source Text: " & .srcText &
vbCrLf & _</b></font></p>
<p align="JUSTIFY"> <font size="3"><b>"Document URL: " & .url</b></font></p>
<p align="JUSTIFY"><font size="3"><b> End With</b></font></p>
<p align="JUSTIFY"></p>
<p align="JUSTIFY"><font size="3"><b> MsgBox strErrText, vbExclamation</b></font></p>
<p align="JUSTIFY"><font size="3"><b>End If</b></font></p>
<p align="JUSTIFY"></p>
<p align="JUSTIFY"><font size="3"><b>Set xPE = Nothing</b></font></p>
<p align="JUSTIFY"><font face="宋體" lang="ZH-CN" size=3>你可以利用</font><b><font size=3>parseError</font></b><font face="宋體" lang="ZH-CN" size=3>對象來向你的用戶報告錯誤信息,或者把它寫入你個</font><font size=3>Log</font><font face="宋體" lang="ZH-CN" size=3>中,你還可以嘗試自己解決遇到的問題。</font></p>
<p align="JUSTIFY"></p>
<p align="JUSTIFY"><font face="宋體" lang="ZH-CN" size=3><a name="6"></a>如何從</font><font size=3>XML</font><font face="宋體" lang="ZH-CN" size=3>文檔中取得信息:</font></p>
<p align="JUSTIFY"> <font face="宋體" lang="ZH-CN" size=3>一旦你成功的調入了文檔,下一步就是如何從中獲得信息了。當你操作文檔時,你經常會用到</font><b><font size=3>IXMLDOMNode</font></b><font face="宋體" lang="ZH-CN" size=3>界面,你利用它來讀</font><font size=3>/</font><font face="宋體" lang="ZH-CN" size=3>寫各個分離的節點元素。在使用它之前,你必須先理解</font><font size=3>MSXML</font><font face="宋體" lang="ZH-CN" size=3>支持的</font><font size=3>13</font><font face="宋體" lang="ZH-CN" size=3>種節點元素類型,下面是最常用的幾個。</font></p>
<p align="LEFT">
<table BORDER cellspacing=1 cellpadding=7 width=336>
<tr>
<td width="52%" valign="TOP" height=30> <b></b>
<p align="JUSTIFY"><font size=3><b>DOM</b></font><font face="宋體" lang="ZH-CN" size=3>節點類型</font>
</td>
<td width="48%" valign="TOP" height=30>
<p align="JUSTIFY"><font face="宋體" lang="ZH-CN" size="3">舉例</font>
</td>
</tr>
<tr>
<td width="52%" valign="TOP" height=39>
<p align="JUSTIFY"><b><font size="3">NODE_ELEMENT</font></b>
</td>
<td width="48%" valign="TOP" height=39>
<p align="JUSTIFY"><b><font size="3"><artist type="band">The
Offspring</artist></font></b>
</td>
</tr>
<tr>
<td width="52%" valign="TOP" height=42>
<p align="JUSTIFY"><b><font size="3">NODE_ATTRIBUTE</font></b>
</td>
<td width="48%" valign="TOP" height=42>
<p align="JUSTIFY"><b><font size="3">type="band">The Offspring</font></b>
</td>
</tr>
<tr>
<td width="52%" valign="TOP" height=31>
<p align="JUSTIFY"><b><font size="3">NODE_TEXT</font></b>
</td>
<td width="48%" valign="TOP" height=31>
<p align="JUSTIFY"><b><font size="3">The Offspring</font></b>
</td>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -