?? 0803-0204.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0071)http://162.105.170.55/ASPs/GetLearningArticleTemp.asp?section=0803-0204 -->
<HTML><HEAD><TITLE>XML中國論壇 - 初學進階 - 8.3.2.4 實現DocumentHandler接口</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>TABLE {
FONT-SIZE: 9pt; COLOR: black; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"
}
.pt9 {
FONT-SIZE: 9pt; COLOR: black; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"
}
.pt10 {
FONT-WEIGHT: 700; FONT-SIZE: 10pt; LINE-HEIGHT: 18pt; FONT-FAMILY: "宋體"
}
.TempOutline {
FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; COLOR: #666666; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
.TempOutline1 {
FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; COLOR: #666666; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
.Outline {
FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
.Outline1 {
FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
.Outline11 {
FONT-SIZE: 9pt; MARGIN-LEFT: 38pt; TEXT-INDENT: -50pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
.passage0 {
FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
.passage1 {
FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
.passage11 {
FONT-SIZE: 9pt; MARGIN-LEFT: 38pt; TEXT-INDENT: -50pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
.passage111 {
FONT-SIZE: 9pt; MARGIN-LEFT: 51pt; TEXT-INDENT: -64pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
</STYLE>
<META content="Microsoft FrontPage 5.0" name=GENERATOR></HEAD>
<BODY vLink=#000000 aLink=#000000 link=#000000 leftMargin=0 topMargin=0
onload=""><!-- 以下為主體內容 -->
<div align="center">
<center>
<TABLE width="100%" border=0 style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0">
<TBODY>
<TR vAlign=top>
<TD width=3 rowSpan=2></TD>
<TD vAlign=center width="35" >
</TD>
<TD vAlign=center width="615" >
<p align="center"><IMG height=33
src="image/title_learner.gif" width=226></TD>
<TD vAlign=center width="41" >
</TD></TR>
<TR vAlign=top>
<TD width="35" > </TD>
<TD width="615" ><!-- 正文內容 -->
<DIV class=pt10><B>8.3.2.4 實現DocumentHandler接口</B></DIV>
<DIV></DIV><BR>
<DIV class=pt9>
<P>DocumentHandler接口是我們要用到的一個最重要的JAXP接口,在該接口中,需要一系列的方法,這些方法是SAX分析器在對XML文檔進行分析時遇到不同的分析事件所激發的相應處理。目前,主要用到五個方法:startDocument,endDocument,startElement,endElement,以及characters,下面黑體部分所標注的代碼就是用來響應這五種事件處理的:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%">...<BR>static private Writer out;<BR><STRONG>public
void startDocument ()<BR>throws SAXException { }<BR>public void
endDocument ()<BR>throws SAXException { }<BR>public void
startElement (String name, AttributeList attrs)<BR>throws
SAXException { }<BR>public void endElement (String name)<BR>throws
SAXException { }<BR>public void characters (char buf [], int offset,
int len)<BR>throws SAXException {
}</STRONG><BR>...</TD></TR></TBODY></TABLE></CENTER></DIV>
<P>當分析器遇到一個起始標記或者一個結束標記時,標記名就作為一個字符串變量傳遞給方法startElement和endElement。另外,當遇到起始標記時,起始標記所代表的元素的所有的屬性都以AttributeList的形式傳遞給startElement方法。在一個元素內的字符以一個字符數組的形式傳遞給characters方法,在characters方法中還有另外兩個參數,其中一個代表字符數組的長度,也即字符的個數,另一個參數代表元素內的第一個字符在字符數組中的偏移。</P>
<P>對于下面所示的XML文檔:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><?xml version =
"1.0"?><BR><addressbook><BR><person><BR>
<lastname>Idris</lastname><BR>
<firstname>Nazmul</firstname><BR>
<company>The Bean Factory, LLC.</company><BR>
<email>xml@beanfactory.com</email><BR></person><BR></addressbook></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>當對它利用SAX分析器中的DocumentHandler接口中的方法進行分析時,方法的調用時序如圖所示:</P><FONT face=宋體
size=3>
<P align=center><IMG height=525
alt="TU000000-0803-0204-01.gif (16103 bytes)"
src="image/TU000000-0803-0204-01.gif" width=614></P>
<P align=center></FONT> </P>
<P><BR></P></DIV>
<P></P>
<P></P></TD>
<TD width="41" > </TD></TR></TBODY></TABLE>
</center>
</div>
<P></P>
<P>
<P></P></BODY></HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -