编程用JAVA解析XML的方式
答:用SAX 方式解析XML,XML 文件如下:
<?xml version=”1.0″ encoding=”gb2312″?>
王小明
信息学院
6258113
男,1955 年生,博士,95 年调入海南大学
事件回调类SAXHandler.java :
import java.io.*;
import java.util.Hashtable;
import org.xml.sax.*;
第28 页共59 页
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:
剖析XML 文件people.xml
<%@ 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();
第29 页共59 页
SAXHandler handler = new SAXHandler();
sp.parse(new InputSource(reader), handler);
Hashtable hashTable = handler.getTable();
out.println(“” +
“教师信息表”);
out.println(“姓名” + “” +
(String)hashTable.get(new String(“name”)) +
“”);
out.println(“学院” + “” +
(String)hashTable.get(new String(“college”))
+””);
out.println(“电话” + “” +
(String)hashTable.get(new String(“telephone”))
+ “”);
out.println(“备注” + “” +
(String)hashTable.get(new String(“notes”))
+ “”);
out.println(“”);
%>
<?xml version=”1.0″ encoding=”gb2312″?>
王小明
信息学院
6258113
男,1955 年生,博士,95 年调入海南大学
事件回调类SAXHandler.java :
import java.io.*;
import java.util.Hashtable;
import org.xml.sax.*;
第28 页共59 页
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:
剖析XML 文件people.xml
<%@ 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();
第29 页共59 页
SAXHandler handler = new SAXHandler();
sp.parse(new InputSource(reader), handler);
Hashtable hashTable = handler.getTable();
out.println(“” +
“教师信息表”);
out.println(“姓名” + “” +
(String)hashTable.get(new String(“name”)) +
“”);
out.println(“学院” + “” +
(String)hashTable.get(new String(“college”))
+””);
out.println(“电话” + “” +
(String)hashTable.get(new String(“telephone”))
+ “”);
out.println(“备注” + “” +
(String)hashTable.get(new String(“notes”))
+ “”);
out.println(“”);
%>
【编程用JAVA解析XML的方式】相关文章
2. XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
5. 怎么处理XML的中文问题
6. XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
7. 用JAVA SOCKET编程,读服务器几个字符,再写入本地显示
8. 用JAVA实现一种排序,JAVA类实现序列化的方法(二种)
10. 如何在web环境中配置applicationContext.xml文件
本文来源:https://www.mianshiwenti.com/a12496.html
进入下载页面