这个问题已解决!
但又有其他问题,原程序如下:
//myHandler.java
import java.io.*;
import org.w3c.dom.*;
import org.xml.sax.*;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import java.util.Hashtable;
import java.util.Enumeration;// myHandler类实现HandlerBase接口
public class myHandler extends HandlerBase
{
private String myElement = null;
private String myValue = null;
private Hashtable mytable = new Hashtable();
public Hashtable getTable()
{
return mytable;
}
// tag代表XML中的标记,如前面XML文件中的NAME AGE等
public void startElement(String tag, AttributeList attrs)
throws SAXException
{
myElement = tag;
}
//如myElement="姓名"时候,myValue就会等于"刘玉锋"
public void characters(char[] ch, int start, int length)
throws SAXException
{
myValue = new String(ch, start, length);
}
//如果存在对应的结束标记</Tag>,就将前面得到的标记myElement和值myValue放入到mytable哈希表中
public void endElement(String name)
throws SAXException
{
if ( myElement.equals(name) )
{
mytable.put(myElement, myValue);
}
}
}//JSP文件
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page language="java" import="myclass.*,java.io.*,org.w3c.dom.*,org.xml.sax.*,javax.xml.parsers.SAXParser,javax.xml.parsers.SAXParserFactory,java.util.*" %><!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<title>XML+JSP演示例子</title>
</head>
<body>
<p>这是一个XML+JSP的例子,读取XML文件中的内容</p>
<%
try
{
String newFile=request.getParameter("file");
out.println("file:"+newFile);
if(newFile==null||newFile.equals(""))
{
out.println("请使用参数如jspxml.jsp?file=d:\\app\\jspxml\\personal.xml");
return;
}
String xmlFile ="file:" + new File(newFile);
out.println("xmlfile:"+xmlFile);
SAXParserFactory saxpF = SAXParserFactory.newInstance();
SAXParser saxpser = saxpF.newSAXParser();
myHandler handler = new myHandler();
saxpser.parse(xmlFile, handler);
Hashtable hshTable = handler.getTable();
//String name=hshTable.get("name");
out.println("name:"+hshTable.get("name"));
Enumeration enum=hshTable.keys();
Object obj;
while(enum.hasMoreElements())
{
obj=enum.nextElement();
out.println("<br>"+obj+"=="+(String)hshTable.get(obj));
}
}
catch (SAXException e)
{
e.printStackTrace();
}
%>
</body>
</html>//XML文件
<?xml version="1.0" encoding="gb2312"?><!DOCTYPE web-app
PUBLIC "-//w3c//dtd html 4.0 transitional//en"><person>
<name>
mzer
</name>
<gender>
male
</gender>
<age>
21
</age>
<mail>
[email protected]
</mail>
<page>
obaby.51.net
</page>
<note>
fly in my face
</note>
</person>
但又有其他问题,原程序如下:
//myHandler.java
import java.io.*;
import org.w3c.dom.*;
import org.xml.sax.*;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import java.util.Hashtable;
import java.util.Enumeration;// myHandler类实现HandlerBase接口
public class myHandler extends HandlerBase
{
private String myElement = null;
private String myValue = null;
private Hashtable mytable = new Hashtable();
public Hashtable getTable()
{
return mytable;
}
// tag代表XML中的标记,如前面XML文件中的NAME AGE等
public void startElement(String tag, AttributeList attrs)
throws SAXException
{
myElement = tag;
}
//如myElement="姓名"时候,myValue就会等于"刘玉锋"
public void characters(char[] ch, int start, int length)
throws SAXException
{
myValue = new String(ch, start, length);
}
//如果存在对应的结束标记</Tag>,就将前面得到的标记myElement和值myValue放入到mytable哈希表中
public void endElement(String name)
throws SAXException
{
if ( myElement.equals(name) )
{
mytable.put(myElement, myValue);
}
}
}//JSP文件
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page language="java" import="myclass.*,java.io.*,org.w3c.dom.*,org.xml.sax.*,javax.xml.parsers.SAXParser,javax.xml.parsers.SAXParserFactory,java.util.*" %><!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<title>XML+JSP演示例子</title>
</head>
<body>
<p>这是一个XML+JSP的例子,读取XML文件中的内容</p>
<%
try
{
String newFile=request.getParameter("file");
out.println("file:"+newFile);
if(newFile==null||newFile.equals(""))
{
out.println("请使用参数如jspxml.jsp?file=d:\\app\\jspxml\\personal.xml");
return;
}
String xmlFile ="file:" + new File(newFile);
out.println("xmlfile:"+xmlFile);
SAXParserFactory saxpF = SAXParserFactory.newInstance();
SAXParser saxpser = saxpF.newSAXParser();
myHandler handler = new myHandler();
saxpser.parse(xmlFile, handler);
Hashtable hshTable = handler.getTable();
//String name=hshTable.get("name");
out.println("name:"+hshTable.get("name"));
Enumeration enum=hshTable.keys();
Object obj;
while(enum.hasMoreElements())
{
obj=enum.nextElement();
out.println("<br>"+obj+"=="+(String)hshTable.get(obj));
}
}
catch (SAXException e)
{
e.printStackTrace();
}
%>
</body>
</html>//XML文件
<?xml version="1.0" encoding="gb2312"?><!DOCTYPE web-app
PUBLIC "-//w3c//dtd html 4.0 transitional//en"><person>
<name>
mzer
</name>
<gender>
male
</gender>
<age>
21
</age>
<mail>
[email protected]
</mail>
<page>
obaby.51.net
</page>
<note>
fly in my face
</note>
</person>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货