编程用JAVA解析XML的方式

2023-07-06   


答:用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(“”);
   %>
  


相关内容:

  1. 用JAVA SOCKET编程,读服务器几个字符,再写入本地显示
  2. XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
  3. 编程实现去掉XML的重复结点
  4. JAVA高级程序员面试题
  5. 汇科协同Java笔试题
  6. xml有哪些解析技术?区别是什么