jsp中读取xml文件中内容的方法

1.XML文件
<? xml version="1.0" encoding="GB2312"  ?>  
<!--  个人履历表 -->  
< resume >
< person  id ="01" >
   
< name > 张三 </ name >  
   
< birthday > 03/24/1975 </ birthday >   
   
< phone > 1111-1111 </ phone >  
   
< address > 大连 </ address >
</ person >   
< person  id ="02" >
   
< name > 李四 </ name >  
   
< birthday > 9/26/1978 </ birthday >   
   
< phone > 2222-2222 </ phone >  
   
< address > 南京 </ address >
</ person >    
< person  id ="03" >
   
< name > 王五 </ name >  
   
< birthday > 11/09/1979 </ birthday >   
   
< phone > 3333-3333 </ phone >  
   
< address > 武汉 </ address >
</ person >    
< person  id ="04" >
   
< name > 赵六 </ name >  
   
< birthday > 6/04/1973 </ birthday >   
   
< phone > 4444-4444 </ phone >  
   
< address > 青岛 </ address >
</ person >    
< person  id ="05" >
   
< name > 陈七 </ name >  
   
< birthday > 12/19/1977 </ birthday >   
   
< phone > 5555-5555 </ phone >  
   
< address > 上海 </ address >
</ person >    
</ resume >  
  
2.MyDOMBean.java
package  test;

import  org.xml.sax. *
import  javax.xml.parsers. * ;
import  org.w3c.dom. * ;
import  java.io. * ;

public   class  MyDOMBean  implements  java.io.Serializable  {
   
private static String xmlStr="";
   
private static final String PATH="file:///";

   
public MyDOMBean() {
   }


   
public String getString(){
        
return xmlStr;
   }


   
public static Document getDocument(String filename) throws Exception {
       xmlStr
="";
       DocumentBuilderFactory dbf 
= DocumentBuilderFactory.newInstance();
        
// 设定解析的叁数
        dbf.setIgnoringComments(true);
        dbf.setIgnoringElementContentWhitespace(
true);
        DocumentBuilder db 
= dbf.newDocumentBuilder();
        
//导入XML文件
        Document doc = db.parse(PATH+filename);
       
       
return doc;
   }


     
public void traverseTree(Node node) throws Exception {
         
if(node == null{
            
return;
         }

         
int type = node.getNodeType();

         
switch (type) {
            
// handle document nodes
            case Node.DOCUMENT_NODE: {
               xmlStr
+="<tr>";
               traverseTree(((Document)node).getDocumentElement());
               
break;
            }

            
// handle element nodes
            case Node.ELEMENT_NODE: {
               String elementName 
= node.getNodeName();
               
if(elementName.equals("person")) {
                 xmlStr
+="</tr><tr>";
               }

               NodeList childNodes 
=
               node.getChildNodes();
               
if(childNodes != null{
                  
int length = childNodes.getLength();
                  
for (int loopIndex = 0; loopIndex <
                  length ; loopIndex
++)
                  
{
                     traverseTree(childNodes.item(loopIndex));
                  }

               }

               
break;
            }

            
// handle text nodes
            case Node.TEXT_NODE: {
               String data 
= node.getNodeValue().trim();
               
if((data.indexOf(" ")  <0&& (data.length()> 0)) {
                 xmlStr
+="<td>"+data+"</td>";
               }

            }

         }

    }


}


3.jsp文件
< html >
< head >
< title > 使用DOM解析器 </ title >
</ head >
<% @ page import="org.w3c.dom.*" %>
<% @ page contentType="text/html;charset=GB2312"  %>
< body  bgcolor ="#CFF1E1" >
< center >
< h2 > 个人履历表(DOM版) </ h2 >
< table  border ="1"  width ="80%" >
< tr >
< td > 姓名 </ td >
< td > 出生年月 </ td >
< td > 电话号码 </ td >
< td > 居住地 </ td >
</ tr >
< jsp:useBean  id ="domparser"  class ="test.MyDOMBean"   />
<%   
   Document doc 
= domparser.getDocument(request.getRealPath("/"+ "08_02.xml");
   domparser.traverseTree(doc);
   out.print(domparser.getString());
%>
</ body >
</ html >
 
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值