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>
?
|