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) ...{
// æä½DOCUMENT对象èç¹
case Node.DOCUMENT_NODE: ...{
xmlStr+="<tr>";
traverseTree(((Document)node).getDocumentElement());
break;
}
// æä½XMLå
ç´ èç¹
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;
}
// æä½XMLææ¬èç¹
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>