⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0803-0207.htm

📁 xml帮助文档
💻 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-0207 -->
<HTML><HEAD><TITLE>XML中国论坛 - 初学进阶 - 8.3.2.7 处理文档事件</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=36 rowSpan=2></TD>
    <TD vAlign=center>
    <p align="center"><IMG height=33 
      src="image/title_learner.gif" width=226></TD>
    <TD width=36 rowSpan=2></TD>
    </TR>
  <TR vAlign=top>
    <TD ><!-- 正文内容 -->
      <DIV class=pt10><B>8.3.2.7 处理文档事件</B></DIV>
    &nbsp;&nbsp;&nbsp;
      <DIV></DIV><BR>
      <DIV class=pt9>
      <P>在"实现DocumentHandler接口"一节中,我们定义了五个文档事件处理方法的框架,现在,我们来实现框架中的实际内容,如下所示:</P>
      <DIV align=center>
      <CENTER>
      <TABLE width="80%" border=1>
        <TBODY>
        <TR>
          <TD width="100%">public void startDocument ()<BR>throws SAXException 
            {<BR><STRONG>emit ("&lt;?xml version= 1.0 encoding= gb2312 
            ?&gt;");<BR>nl();<BR></STRONG>}<BR><BR>public void endDocument 
            ()<BR>throws SAXException {<BR><STRONG>try {<BR>&nbsp; 
            nl();<BR>&nbsp; out.flush ();<BR>} catch (IOException e) {<BR>&nbsp; 
            throw new SAXException ("I/O error", e); <BR>} 
        </STRONG><BR>}</TD></TR></TBODY></TABLE></CENTER></DIV>
      <P>在上面代码中,当分析器遇到文档的起始部分时,就输出XML文档声明语句。当分析器分析到文档的结束时,简单地输出一个换行,并把输出流中的内容全部输出。就文档开始与结束而言,不需要再做其他的工作。而对于元素起始与结束,所做的工作如下面代码中的黑体部分所示:</P>
      <DIV align=center>
      <CENTER>
      <TABLE width="80%" border=1>
        <TBODY>
        <TR>
          <TD width="100%">public void startElement (String name, 
            AttributeList attrs)<BR>throws SAXException {<BR><STRONG>emit 
            ("&lt;"+name);<BR>if (attrs != null) {<BR>&nbsp; for (int i = 0; i 
            &lt; attrs.getLength (); i++) {<BR>&nbsp;&nbsp; emit (" 
            ");<BR>&nbsp;&nbsp; emit (attrs.getName(i)+"=\""+attrs.getValue 
            (i)+"\"");<BR>&nbsp; }<BR>}<BR>emit 
            ("&gt;");</STRONG><BR>}<BR><BR>public void endElement (String 
            name)<BR>throws SAXException {<BR><STRONG>emit 
            ("&lt;/"+name+"&gt;");</STRONG><BR>}</TD></TR></TBODY></TABLE></CENTER></DIV>
      <P>通过上面的代码,可以输出所遇到的元素名称以及元素的所有属性。现在,只剩下XML文档中的文本内容没有输出了。下面代码则是characters方法的实现:</P>
      <DIV align=center>
      <CENTER>
      <TABLE width="80%" border=1>
        <TBODY>
        <TR>
          <TD width="100%">public void characters (char buf [], int offset, 
            int len)<BR>throws SAXException {<BR><STRONG>String s = new 
            String(buf, offset, len);<BR>emit 
      (s);</STRONG><BR>}</TD></TR></TBODY></TABLE></CENTER></DIV>
      <P>到目前为止,我们已经写完了利用SAX分析器的一个应用程序Echo.java,接下来就是编译并执行该应用程序了。<BR></P></DIV>
      <P></P>
      <P></P></TD></TR></TBODY></TABLE>
  </center>
</div>
<P></P>
<P>
<P></P></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -