?? xml技術(shù)系列講座(7)通過dom操作數(shù)據(jù)(上) - fanqiang_com.htm
字號(hào):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0064)http://fanqiang.chinaunix.net/program/html/2002-02-09/2327.shtml -->
<HTML><HEAD><TITLE>XML技術(shù)系列講座(7)通過DOM操作數(shù)據(jù)(上) - fanqiang.com</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>BODY {
FONT: 12pt 宋體
}
TH {
FONT: 12pt 宋體
}
INPUT {
FONT: 12pt 宋體
}
SELECT {
FONT: 12pt 宋體
}
TEXTAREA {
FONT: 12pt 宋體
}
SELECT {
FONT: 12pt 宋體
}
checkbox {
FONT: 12pt 宋體
}
A:link {
COLOR: #e6a306; TEXT-DECORATION: underline
}
A:visited {
COLOR: #e6a306; TEXT-DECORATION: underline
}
A:hover {
COLOR: #ffff00; TEXT-DECORATION: underline
}
BODY {
FONT-SIZE: 12pt; FONT-FAMILY: "宋體", "serif"
}
TD {
FONT-SIZE: 12pt; FONT-FAMILY: "宋體", "serif"
}
P {
FONT-SIZE: 9pt; LINE-HEIGHT: 150%
}
</STYLE>
<META content="MSHTML 6.00.2800.1505" name=GENERATOR></HEAD>
<BODY text=#ffffff bgColor=#000000 leftMargin=0
background="XML技術(shù)系列講座(7)通過DOM操作數(shù)據(jù)(上) - fanqiang_com.files/bline.gif" topMargin=5
onload=setTailPosition() marginwidth="0" marginheight="5">
<CENTER>
<TABLE cellSpacing=0 cellPadding=0 width=750 border=0>
<TBODY>
<TR>
<TD height=45>
<P align=center><IMG alt="[ 永遠(yuǎn)的UNIX::UNIX技術(shù)資料的寶庫 ]"
src="XML技術(shù)系列講座(7)通過DOM操作數(shù)據(jù)(上) - fanqiang_com.files/title.gif"> </P></TD></TR>
<TR>
<TR>
<TD vAlign=bottom align=left height=40><SMALL><A
href="http://fanqiang.chinaunix.net/">首頁</A> > 編程技術(shù) > <A
href="http://fanqiang.chinaunix.net/program/html/index.shtml">HTML/JS/XML</A>
> 正文</SMALL></TD></TR>
<TR>
<TD width="100%" bgColor=#d09f0d colSpan=5 height=2><IMG height=1
src="XML技術(shù)系列講座(7)通過DOM操作數(shù)據(jù)(上) - fanqiang_com.files/c.gif"
width=1></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=750 border=0>
<TBODY>
<TR>
<TD vAlign=top align=middle><BR>
<TABLE cellSpacing=0 cellPadding=0 width="90%" align=center border=0>
<TBODY>
<TR>
<TH class=f24>
<H1>XML技術(shù)系列講座(7)通過DOM操作數(shù)據(jù)(上)</H1></TH></TR>
<TR>
<TD align=middle height=20><FONT
color=#999999><SMALL>本文出自:http://www.computerworld.com.cn 作者: 北京郵電大學(xué)
張劍 (2002-02-09 07:20:00)</SMALL></FONT></TD></TR>
<TR>
<TD><BR>
<SCRIPT type=text/javascript><!--
google_ad_client = "pub-0052768304011480";
google_alternate_color = "000000";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_channel ="5959447789";
google_color_border = "000000";
google_color_bg = "666666";
google_color_link = "FFFFFF";
google_color_url = "FF9900";
google_color_text = "CCCCCC";
//--></SCRIPT>
<SCRIPT
src="XML技術(shù)系列講座(7)通過DOM操作數(shù)據(jù)(上) - fanqiang_com.files/show_ads.js"
type=text/javascript>
</SCRIPT>
</TD></TR>
<TR>
<TD height=15></TD></TR>
<TR>
<TD class=l17><FONT class=f14 id=zoom><FONT color=#cccccc><!-- 正文begin --><!--HTML_BEGIN-->
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B>1、DOM樹</B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>所有類型的XML解析器都要求處理對(duì)象是“格式良好”的XML文檔,有些還能根據(jù)DTD或XML
Schema進(jìn)行有效性驗(yàn)證,DOM(Document Object
Model)解析器將XML文檔一次性解析,生成一個(gè)位于內(nèi)存中的對(duì)象樹用以描述該文檔。</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14>DOM是一種與平臺(tái)和語言無關(guān)的接口,它允許程序和腳本動(dòng)態(tài)訪問和修改文檔的內(nèi)容、結(jié)構(gòu)和類型。它定義了一系列的對(duì)象和方法對(duì)DOM樹的節(jié)點(diǎn)進(jìn)行各種隨機(jī)操作:</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>●
Document對(duì)象:作為樹的最高節(jié)點(diǎn),Document對(duì)象是對(duì)整個(gè)文檔進(jìn)行操作的入口。</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>●
Element和Attr對(duì)象:這些節(jié)點(diǎn)對(duì)象都是文檔某一部分的映射,節(jié)點(diǎn)的定級(jí)層次恰好反映了文檔的結(jié)構(gòu)。</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>●
Text對(duì)象:作為Element和Attr對(duì)象的子節(jié)點(diǎn),Text對(duì)象表達(dá)了元素或?qū)傩缘奈谋緝?nèi)容。Text節(jié)點(diǎn)不再包含任何子節(jié)點(diǎn)。</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>●
集合索引:DOM提供了幾種集合索引方式,可以對(duì)節(jié)點(diǎn)按指定方式進(jìn)行遍歷。索引參數(shù)都是從0開始記數(shù)的。</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14>DOM樹中的所有節(jié)點(diǎn)都是從Node對(duì)象繼承而來的。Node對(duì)象定義了一些最基本的屬性和方法,利用這些方法可以實(shí)現(xiàn)對(duì)樹的遍歷,同時(shí),根據(jù)屬性還可以得知節(jié)點(diǎn)的名稱、取值并判斷其類型。</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14>利用DOM,開發(fā)人員可以動(dòng)態(tài)地創(chuàng)建XML、遍歷文檔、增加/刪除/修改文檔內(nèi)容。DOM提供的API與編程語言無關(guān),所以對(duì)一些DOM標(biāo)準(zhǔn)中沒有明確定義的接口,不同解析器的實(shí)現(xiàn)方法也可能有所差別。為方便描述,本文的舉例均采用MSXML
DOM方案并用VB Script編寫代碼。</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B>2、DOM樹的結(jié)構(gòu)</B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14>Document對(duì)象建立之后,就可以與XML文檔或數(shù)據(jù)島聯(lián)系在一起。數(shù)據(jù)島的加載方法是將數(shù)據(jù)島ID賦給Document對(duì)象:</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><XML ID=“dsoDetails”
src=“Books.xml”></XML></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>Set doc =
dsoDetails.XMLDocument</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>加載文檔大體上分為三步:</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>1.使用CreateObject方法創(chuàng)建分析器實(shí)例;</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14>2.設(shè)置async屬性為False,禁止異步加載,這樣當(dāng)文檔加載完畢,控制權(quán)才會(huì)返回給調(diào)用進(jìn)程,如果想獲取文檔加載狀態(tài),可以讀取readyState屬性值;</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>3.使用load方法加載指定文檔。</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>Set doc =
CreateObject(“Microsoft.XMLDOM”)</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>doc.async = False</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>doc.load “Books.xml”</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>XML
DOM還提供了一種loadXML的方法可以把XML字符串加載到DOM樹中,使用時(shí)只要把XML字符串直接作為該方法的參數(shù)即可。</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B>3、DOM樹的訪問</B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14>在文檔加載完畢之后就可以使用documentElement屬性訪問根元素:</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>Set rootNode =
doc.documentElement</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14>一旦建立了對(duì)DOM樹中某個(gè)節(jié)點(diǎn)(例如根節(jié)點(diǎn))的引用,就可以根據(jù)節(jié)點(diǎn)間的等級(jí)關(guān)系調(diào)用適當(dāng)?shù)姆椒ㄟM(jìn)行遍歷。</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -