您的位置:首页 > Web前端 > JavaScript

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

2007-06-06 08:45 766 查看
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>



 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息