### XML 和 JSP 交互技术(3)

saxpser.parse(xmlFile, handler);
// 解析完毕后利用 handler.getTable()方法返回保存有数据的哈希表
Hashtable hshTable = handler.getTable();
file://使用集合 Enumeration 来得到哈希表 hshTable 中的所有键值
Enumeration enum=hshTable.keys();
Object obj;
while(enum.hasMoreElements()){
file://取集合中的下一个元素对象
obj=enum.nextElement();
// 通过 Jsp 的内置对象 out 来输出到 Jsp 页面
file://hshTable.get()方法用来根据键 obj 得到对应的数值，注意在这里需要进行造型 cast 处理
out.println("
"+obj+"=="+(String)hshTable.get(obj));
}
}
catch (SAXException e) {
file://如果有错误，打印出错详细信息
e.printStackTrace();
}
%>
代码写完好，将此文件放在 Web 应用程序目录下，然后通过浏览器运行这个程序，如 http://192.168.0.98:7070/welcome_html/jspxml.jsp?file=e:\\personal.xml，注意必须使用参数?file=路径\\personal.xml (路径根据你保存在硬盘中的目录而定，Java 表示：Windows 系统下"\\"代表一个"\")，运行后的效果如下面所示：
可以看到，XML 文件中的所有数据都通过这个 Jsp 文件读取出来了，因为这个 Jsp 程序是文件无关的，你也可以将 file=e:\\personal.xml 中的 xml 文件名字换为其他的 XML 文件看看最后运行效果。
要说明一点的就是本人在最后实际采用的是 JAXP1.01 版本的 API，有可能是本人的系统原因，发现程序在 1.1 版本下可以编译通过，但运行的时候会出现下面错误(即使 JAXP1.1 包中自带的例子 main.java 也这样):
java.lang.NoClassDefFoundError: org.apache.crimson.jaxp.SAXParserFactoryImpl
所以最后换作了 1.01 版本的 JAXP 来运行程序，1.01 版本的 JAXP 在上面的地址同样可以下载。
<个人档案>
<姓名>刘玉锋
<性别>男
<年龄>24
coolknight@263.net
<个人主页>http://www.21jsp.com
<介绍>欢迎大家访问我的主页!