JSP中用DOM读取xml文件
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ page import="java.io.*"%>
<%@ page import="javax.xml.parsers.*"%>
<%@ page import="org.w3c.dom.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>DomReadXml练习操作</title>
</head>
<body>
<%
//该方法为固定格式应背出
//用输入流对象接收xml文件,注意xml文件的地址,加了/表示在WEB-INF/classes/下
InputStream is = pageContext.getServletContext()
.getResourceAsStream("/NewFile.xml");
//建立解析工厂
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
//忽略元素中的空格
dbf.setIgnoringElementContentWhitespace(true);
//建立解析器
DocumentBuilder db = dbf.newDocumentBuilder();
//获取文档对象
Document doc = db.parse(is);
//获取节点列表
NodeList nlist = doc.getElementsByTagName("user");
//获取节点下的所有数据列表
NodeList IdList = doc.getElementsByTagName("Id");
NodeList stuNameList = doc.getElementsByTagName("stuName");
NodeList stuSexList = doc.getElementsByTagName("stuSex");
NodeList stuAgeList = doc.getElementsByTagName("stuAge");
NodeList stuAddressList = doc.getElementsByTagName("stuAddress");
%>
<table>
<tr>
<td>
用户ID
</td>
<td>
姓名
</td>
<td>
性别
</td>
<td>
年龄
</td>
<td>
地址
</td>
</tr>
<%
//通过循环遍历所有nlist列表中的数据
for (int i = 0; i < nlist.getLength(); i++) {
%>
<tr>
<td>
<%=IdList.item(i).getFirstChild().getNodeValue()%>
</td>
<td>
<%=stuNameList.item(i).getFirstChild().getNodeValue()%>
</td>
<td>
<%=stuSexList.item(i).getFirstChild().getNodeValue()%>
</td>
<td>
<%=stuAgeList.item(i).getFirstChild().getNodeValue()%>
</td>
<td>
<%=stuAddressList.item(i).getFirstChild()
.getNodeValue()%>
</td>
</tr>
<%
}
%>
</table>
</body>
</html>
JDOM读取xml范例
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="org.jdom.*"%>
<%@ page import="org.jdom.input.*"%>
<%@ page import="org.jdom.output.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>JdomReadXml读取操作</title>
</head>
<body>
<table>
<tr>
<td>
用户ID
</td>
<td>
姓名
</td>
<td>
性别
</td>
<td>
年龄
</td>
<td>
地址
</td>
</tr>
<%
//创建对象
SAXBuilder builder = new SAXBuilder();
//建立Document对象
Document doc = builder.build(pageContext.getServletContext()
.getResourceAsStream("NewFile.xml"));
//获取根元素
Element rootElement = doc.getRootElement();
//获取子元素列表
List list = rootElement.getChildren();
//通过循环遍历子元素列表
for (Iterator i = list.iterator(); i.hasNext();) {
//通过Iterator对象将下一次循环的数据转换成元素对象
Element current = (Element) i.next();
%>
<tr>
<td>
<%=current.getChildText("Id")%>
</td>
<td>
<%=current.getChildText("stuName")%>
</td>
<td>
<%=current.getChildText("stuSex")%>
</td>
<td>
<%=current.getChildText("stuAge")%>
</td>
<td>
<%=current.getChildText("stuAddress")%>
</td>
</tr>
<%
}
%>
</table>
</body>
</html>
JDOM修改xml范例
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="org.jdom.*"%>
<%@ page import="org.jdom.input.*"%>
<%@ page import="org.jdom.output.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>JdomModifyXml修改操作</title>
</head>
<body>
<table border="1">
<tr>
<td>
用户ID
</td>
<td>
姓名
</td>
<td>
性别
</td>
<td>
年龄
</td>
<td>
地址
</td>
</tr>
<%
//------------修改xml文件内容----------------------
SAXBuilder builder = new SAXBuilder();
Document readDocument = builder.build(pageContext
.getServletContext().getResourceAsStream("NewFile.xml"));
Element rootElement = readDocument.getRootElement();
//------------------查找要修改的信息------------------------
//将子结点列表放入list中
List list = rootElement.getChildren();
for (Iterator i=list.iterator();i.hasNext();){
Element child = (Element)i.next();
if (child.getChildText("Id").equals("1")){
child.getChild("Id").setText("20");
}
}
//使用该方式循环和上面的遍历一样效果
for (int i=0;i<list.size();i++){
Element child = (Element)list.get(i);
if (child.getChildText("Id").equals("1")){
child.getChild("Id").setText("20");
}
}
//----------------------------------
//--------------保存Document到xml文件---------------
//建立pretty格式的的格式化对象
Format format = Format.getPrettyFormat();
//设置编码类型
format.setEncoding("gb2312");
//输出到xml文件
XMLOutputter xmlOutput = new XMLOutputter(format);
String filename = pageContext.getServletContext().getRealPath("NewFile.xml");
xmlOutput.output(readDocument,new FileOutputStream(filename));
%>
</table>
</body>
</html>