加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

用SAX 方式解析 XML

发布时间:2020-12-15 23:45:15 所属栏目:百科 来源:网络整理
导读:XML 文件如下: ?xml version="1.0" encoding="gb2312"? person name 王小明 /name college 信息学院 /college telephone6258113/telephone notes 男,1955 年生,博士, 95 年调入海南大学 /notes /person 事件回调类 SAXHandler.java import java.io.*; impo

XML 文件如下:
<?xml version="1.0" encoding="gb2312"?>
<person>
<name> 王小明 </name>
<college> 信息学院 </college>
<telephone>6258113</telephone>
<notes> 男,1955 年生,博士, 95 年调入海南大学 </notes>
</person>
事件回调类 SAXHandler.java
import java.io.*;
import java.util.Hashtable;
import org.xml.sax.*;
public class SAXHandler extends HandlerBase
{
private Hashtable table = new Hashtable();
private String currentElement = null;
private String currentValue = null;
public void setTable(Hashtable table)
{
this.table = table;
}
public Hashtable getTable()
{
return table;
}
public void startElement(String tag,AttributeList attrs)
throws SAXException
{
currentElement = tag;
}
public void characters(char[] ch,int start,int length)
throws SAXException
{
currentValue = new String(ch,start,length);
}
public void endElement(String name) throws SAXException
{
if (currentElement.equals(name))
table.put(currentElement,currentValue);
}
}
JSP 内容显示源码,SaxXml.jsp:
<HTML>
<HEAD>
<TITLE> 剖析 XML 文件 people.xml</TITLE>
</HEAD>
<BODY>
<%@ page errorPage="ErrPage.jsp"
contentType="text/html;charset=GB2312" %>
<%@ page import="java.io.*" %>
<%@ page import="java.util.Hashtable" %>
<%@ page import="org.w3c.dom.*" %>
<%@ page import="org.xml.sax.*" %>
<%@ page import="javax.xml.parsers.SAXParserFactory" %>
<%@ page import="javax.xml.parsers.SAXParser" %>
<%@ page import="SAXHandler" %>
<%
File file = new File("c://people.xml");
FileReader reader = new FileReader(file);
Parser parser;
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
SAXHandler handler = new SAXHandler();
sp.parse(new InputSource(reader),handler); Hashtable hashTable = handler.getTable(); out.println("<TABLE BORDER=2><CAPTION> 教师信息表 </CAPTION>"); out.println("<TR><TD> 姓名 </TD>" + "<TD>" + (String)hashTable.get(new String("name")) + "</TD></TR>"); out.println("<TR><TD> 学院 </TD>" + "<TD>" + (String)hashTable.get(new String("college"))+"</TD></TR>"); out.println("<TR><TD> 电话 </TD>" + "<TD>" + (String)hashTable.get(new String("telephone")) + "</TD></TR>"); out.println("<TR><TD> 备注 </TD>" + "<TD>" + (String)hashTable.get(new String("notes")) + "</TD></TR>"); out.println("</TABLE>"); %> </BODY> </HTML>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读