XML文件
<?xml version="1.0" encoding="gb2312"?> <person> <name>ssuupv</name> <college>材料学院</college> <telephone>6258113</telephone> <notes>男,1979年生,本科,99年调入中国陶瓷大学</notes> </person>
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文件
<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" %>
<% System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); File file = new File("D:\\projects\\test\\webapp\\people.xml"); FileReader reader=new FileReader(file); //String reader ="<person><name>ssuupv</name><college>材料学院</college><telephone>6258113</telephone><notes>男 1979年生 本科 79年调入中国陶瓷大学</notes></person>";
Parser parser;
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
com.test.SAXHandler handler = new com.test.SAXHandler .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>
|