编程用JAVA解析XML的方式

用SAX方式解析XML,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>

 

黑色头发  http://heisetoufa.iteye.com

如果发现本文有误,欢迎批评指正

你可能感兴趣的:(java,html,编程,xml,jsp)