亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

在JSP開發中使用jdom解析臨時存放數據的XML文件

2024-09-05 00:20:15
字體:
來源:轉載
供稿:網友

    在我工作過程中,遇到了對臨時存儲產品信息的xml文件進行操作的問題.其中就有對xml文件的解析操作,考慮到用dom或sax比較麻煩,于是我選擇了用jdom進行解析.因為我的xml文件結構比較簡單,僅有兩層,而且沒有復雜的屬性,所以沒有用到里面太多的方法,只希望能夠拋磚引玉,給初學者一點幫助.

    下面我就把大概的實現過程說一說.

    一.實現解析xml文件的javabean(xmlbean):

    我把對存放產品信息的xml文檔的全部操作都寫在了xmlbean()里面,包括添加,修改,刪除一條記錄,查看相關記錄等操作.具體實現的代碼如下:

package xml;
import java.io.*;
import java.util.*;
import org.jdom.*;
import org.jdom.output.*;
import org.jdom.input.*;
import javax.servlet.*;
import javax.servlet.http.*;
/**
 * <p>title:xmlbean</p>
 * <p>description: </p>
 * <p>copyright: copyright (c) 2005</p>
 * @author lihs
 * @version 1.0
**/
/*
**
**通過往xml文件里面添加,刪除,修改記錄。從而實現對生產部門提交產品信息的處理。
*/
public class xmlbean{
    private string produceid,producename,produceclass,producetype,producecolor,baozhiqi,producenum,producedep,producedate;
    public string getproduceid() { return produceid;}
    public string getproducename() { return producename;}
    public string getproduceclass() { return produceclass;}
    public string getproducetype() { return producetype;}
    public string getproducecolor() { return producecolor;}
    public string getbaozhiqi() { return baozhiqi;}
    public string getproducenum() { return producenum;}
    public string getproducedep() { return producedep;}
    public string getproducedate() { return producedate;}
    public void setproduceid(string produceid) { this.produceid =produceid ; }
    public void setproducename(string producename) { this.producename =producename; }
    public void setproduceclass(string produceclass) { this.produceclass =produceclass ; }
    public void setproducetype(string producetype) { this.producetype =producetype ; }
    public void setproducecolor(string producecolor) { this.producecolor =producecolor ; }
    public void setbaozhiqi(string baozhiqi) { this.baozhiqi =baozhiqi ; }
    public void setproducenum(string producenum) { this.producenum =producenum ; }
    public void setproducedep(string producedep) { this.producedep =producedep ; }
    public void setproducedate(string producedate) { this.producedate =producedate ; }
    public xmlbean(){}
/**
* 通過傳入路徑讀取xml文件的內容。
*/
    public vector loadxml(string path)throws exception{
        vector xmlvector = null;
        fileinputstream fi = null;
        try{
            fi = new fileinputstream(path);
            xmlvector = new vector();
            saxbuilder sb = new saxbuilder();
            document doc = sb.build(fi);
            element root = doc.getrootelement(); //獲取根節點
            list produces = root.getchildren(); //獲取根節點下面的所有子元素
            element produce =null;
            xmlbean xml =null;
            for(int i=0;i<produces.size();i++){
                xml = new xmlbean();
                produce = (element)produces.get(i ); //取得指定的孩子節點信息
                xml.setproduceid(produce.getchild("produceid").gettext());
                xml.setproducename(produce.getchild("producename").gettext());
                xml.setproduceclass(produce.getchild("produceclass").gettext());
                xml.setproducetype(produce.getchild("producetype").gettext());
                xml.setproducecolor(produce.getchild("producecolor").gettext());
                xml.setbaozhiqi(produce.getchild("baozhiqi").gettext());
                xml.setproducenum(produce.getchild("producenum").gettext());
                xml.setproducedep(produce.getchild("producedep").gettext());
                xml.setproducedate(produce.getchild("producedate").gettext());
                xmlvector.add(xml);
            }
        }
        catch(exception e){
            system.err.println(e+"error");
        }
        finally{
            try{
                fi.close();
            }
            catch(exception e){
                e.printstacktrace();
            }
        }
        return xmlvector;
    }
/**
* 刪除指定的元素信息
*/
    public static void delxml(httpservletrequest request)throws exception{
        fileinputstream fi = null;
        fileoutputstream fo = null;
        try{
            string path=request.getparameter("path");
            int xmlid=integer.parseint(request.getparameter("id"));
            fi = new fileinputstream(path);
            saxbuilder sb = new saxbuilder();
            document doc = sb.build(fi);
            element root = doc.getrootelement();
            list produces = root.getchildren();
            produces.remove(xmlid);
            string indent = "";
            boolean newlines = true;
            xmloutputter outp = new xmloutputter(indent,newlines,"gbk");
            fo=new fileoutputstream(path);
            outp.output(doc,fo);
        }
        catch(exception e){
            system.err.println(e+"error");
        }
        finally{
                try{
                    fi.close();
                    fo.close();
                }
                catch(exception e){
                    e.printstacktrace();
                }
        }
    }
/**
* 往xml文件中添加一條記錄產品信息
**/
    public static void addxml(httpservletrequest request)throws exception{
        fileinputstream fi = null;
        fileoutputstream fo = null;
        try{
            xmlbean bean=new xmlbean();
            string path=request.getparameter("path");
            fi = new fileinputstream(path);
            saxbuilder sb = new saxbuilder();
            document doc = sb.build(fi);
            element root = doc.getrootelement(); //
            list produces = root.getchildren(); //
            string produceid=bean.tochinese(request.getparameter("produceid"));
            string producename=bean.tochinese(request.getparameter("producename"));
            string produceclass=bean.tochinese(request.getparameter("produceclass"));
            string producetype=bean.tochinese(request.getparameter("producetype"));
            string producecolor=bean.tochinese(request.getparameter("producecolor"));
            string baozhiqi=bean.tochinese(request.getparameter("baozhiqi"));
            string producenum=bean.tochinese(request.getparameter("producenum"));
            string producedep=bean.tochinese(request.getparameter("producedep"));
            string producedate=bean.tochinese(request.getparameter("producedate"));
            text newtext;
            element newproduce= new element("produce");
            element newproduceid= new element("produceid");
            newproduceid.settext(produceid);
            newproduce.addcontent(newproduceid);
            //
            element newproducename= new element("producename");
            newproducename.settext(producename);
            newproduce.addcontent(newproducename);
            //
            element newproduceclass= new element("produceclass");
            newproduceclass.settext(produceclass);
            newproduce.addcontent(newproduceclass);
            //
            element newproducetype= new element("producetype");
            newproducetype.settext(producetype);
            newproduce.addcontent(newproducetype);
            //
            element newproducecolor= new element("producecolor");
            newproducecolor.settext(producecolor);
            newproduce.addcontent(newproducecolor);
            //
            element newbaozhiqi= new element("baozhiqi");
            newbaozhiqi.settext(baozhiqi);
            newproduce.addcontent(newbaozhiqi);
            //
            element newproducenum= new element("producenum");
            newproducenum.settext(producenum);
            newproduce.addcontent(newproducenum);
            //
            element newproducedep= new element("producedep");
            newproducedep.settext(producedep);
            newproduce.addcontent(newproducedep);
            //
            element newproducedate= new element("producedate");
            newproducedate.settext(producedate);
            newproduce.addcontent(newproducedate);
            produces.add(newproduce);//
            string indent = "/n";
            boolean newlines = true;
            xmloutputter outp = new xmloutputter(indent,newlines,"gbk");
            fo=new fileoutputstream(path);
            outp.output(doc,fo);
        }
        catch(exception e){
            system.err.println(e+"error");
            }
        finally{
                try{
                    fi.close();
                    fo.close();
                    }
        catch(exception e){
                e.printstacktrace();
                }
            }
    }
/**
* 更改xml中指定的記錄的信息
*/
    public static void editxml(httpservletrequest request)throws exception{
        fileinputstream fi = null;
        fileoutputstream fo = null;
        try{
            xmlbean bean=new xmlbean();
            string path=request.getparameter("path");
            int xmlid=integer.parseint(request.getparameter("id"));
            fi = new fileinputstream(path);
            saxbuilder sb = new saxbuilder();
            document doc = sb.build(fi);
            element root = doc.getrootelement(); //
            list produces = root.getchildren(); //
            element produce=(element)produces.get(xmlid);
            string produceid=bean.tochinese(request.getparameter("produceid"));
            string producename=bean.tochinese(request.getparameter("producename"));
            string produceclass=bean.tochinese(request.getparameter("produceclass"));
            string producetype=bean.tochinese(request.getparameter("producetype"));
            string producecolor=bean.tochinese(request.getparameter("producecolor"));
            string baozhiqi=bean.tochinese(request.getparameter("baozhiqi"));
            string producenum=bean.tochinese(request.getparameter("producenum"));
            string producedep=bean.tochinese(request.getparameter("producedep"));
            string producedate=bean.tochinese(request.getparameter("producedate"));
            text newtext;
            element newproduceid= produce.getchild("produceid");
            newproduceid.settext(produceid);
            //
            element newproducename=produce.getchild("producename");
            newproducename.settext(producename);
            //
            element newproduceclass=produce.getchild("produceclass");
            newproduceclass.settext(produceclass);
            //
            element newproducetype=produce.getchild("producetype");
            newproducetype.settext(producetype);
            //
            element newproducecolor=produce.getchild("producecolor");
            newproducecolor.settext(producecolor);
            //
            element newbaozhiqi= produce.getchild("baozhiqi");
            newbaozhiqi.settext(baozhiqi);
            //
            element newproducenum=produce.getchild("producenum");
            newproducenum.settext(producenum);
            //
            element newproducedep=produce.getchild("producedep");
            newproducedep.settext(producedep);
            //
            element newproducedate=produce.getchild("producedate");
            newproducedate.settext(producedate);
            //
                           books.set(xmlid,book);
            string indent = "/n";
            boolean newlines = true;
            xmloutputter outp = new xmloutputter(indent,newlines,"gbk");
            fo=new fileoutputstream(path);
            outp.output(doc,fo);
        }
        catch(exception e){
            system.err.println(e+"error");
        }
        finally{
                try{
                    fi.close();
                    fo.close();
                }
                catch(exception e){
                    e.printstacktrace();
                }
        }
    }
}

  在這些方法中有很多重復的地方,因為是練習沒有考慮太多,讀者可以有選擇的看一下.

    二.調用上面寫的javabean的jsp程序如下:

    得到的結果是一個產品列表頁面,它包含了xml文件中所有的產品記錄,每條記錄都有通向該記錄詳細信息的頁面.同時每條記錄后面都有查看,編輯,刪除的鏈接,實現的方法都寫在了上面的javabean里了,在jsp頁面里面僅需要傳給它相應參數即可.

    效果如下:

<%@ page contenttype="text/html; charset=gb2312" language="java" errorpage="" %>
<%@ page language="java" import="java.util.*,xml.*"%>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
<title>產品管理</title>
</head>
<link  href="../images/tbspace.css" type=text/css rel=stylesheet>
<body>
<center><table width="85%" height="96" border="0" align="center">
  <tr>
    <td height="92"><img src="http://www.49028c.com/htmldata/upload/200902/common/produce_head.jpg" width="638" height="90"></td>
  </tr>
</table>
  <span class="style1">錄入請求中的產品信息如下</span>
<table border="1" cellspacing="0" width="90%" bordercolorlight="#000000" bordercolordark="#ffffff" cellpadding="0">
    <tr>
        <td width="17%"  align="center" bgcolor="#d0d0d0" >產品編號</td>
        <td width="25%"  align="center" bgcolor="#d0d0d0" >產品名稱</td>
        <td width="19%"  align="center"  bgcolor="#d0d0d0">產品類別</td>
        <td width="20%"  align="center" bgcolor="#d0d0d0">生產部門</td>
        <td  align="center" bgcolor="#d0d0d0" >查看</td>
        <td  align="center" bgcolor="#d0d0d0">編輯</td>
        <td  align="center" bgcolor="#d0d0d0">刪除</td>
    </tr>
<%
    string path =application.getrealpath("/")+"produce.xml";
    xmlbean xml=new xmlbean();
    vector xmlall=xml.loadxml(path);
    for(int i=0;i<xmlall.size();i++){
        xml=(xmlbean)xmlall.elementat(i );
%>
  <tr>
    <td width="17%"  align="center" ><%=xml.getproduceid()%></td>
    <td width="25%"  align="center" ><a href="showproduce.jsp?id=<%=i%>&path=<%=path%>"><%=xml.getproducename()%></a></td>
    <td width="19%"  align="center" ><%=xml.getproduceclass()%></td>
    <td width="20%"  align="center" ><%=xml.getproducedep()%></td>
    <td  align="center" ><a href="showproduce.jsp?id=<%=i%>&path=<%=path%>">view</a></td>
    <td  align="center" ><a href="updateproduce.jsp?produceid=<%=xml.getproduceid()%>&id=<%=i%>&path=<%=path%>">edit</a></td>
    <td  align="center" ><a href="okdeleteproduce.jsp?id=<%=i%>&path=<%=path%>">delete</a></td>
  </tr>
<%}%>
</table>
<input type="hidden" name="path" value="<%=path%>">
</center>
</body>
</html>

    三.存放產品信息的xml文件produce.xml如下:

<?xml version="1.0" encoding="gbk"?>
<produces>
 <produce>
  <produceid>pw0005</produceid>
  <producename>cd綠毒女士 50ml</producename>
  <produceclass>女式</produceclass>
  <producetype>50ml</producetype>
  <producecolor>粉紅</producecolor>
  <baozhiqi>5</baozhiqi>
  <producenum>480</producenum>
  <producedep>第二事業部</producedep>
  <producedate>2005-05-26</producedate>
 </produce>
 <produce>....</produce>
</produces>

  以上是本人的一點小總結,因為水平有限,不足還請大家諒解,謝謝!



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品国产91久久久久久| 精品av在线播放| 992tv成人免费影院| 国产精品观看在线亚洲人成网| 日本欧美一二三区| 狠狠做深爱婷婷久久综合一区| 97国产在线视频| 国产精品一区二区女厕厕| 亚洲乱码国产乱码精品精| 亚洲无亚洲人成网站77777| 在线观看亚洲视频| 国产精品偷伦一区二区| 国产成人精品在线视频| 久久久精品欧美| 欧美精品免费在线观看| 久久久视频精品| 国产亚洲成精品久久| 欧美孕妇与黑人孕交| 国产精品第一区| 精品亚洲一区二区三区在线播放| 国产日韩在线播放| 性视频1819p久久| 精品高清一区二区三区| 国产成人精品在线| 久久亚洲电影天堂| 一区二区中文字幕| 成人午夜小视频| 国产精品6699| 91成人天堂久久成人| 亚洲精品国产拍免费91在线| 亚洲第一色中文字幕| 成人久久18免费网站图片| 最近2019中文免费高清视频观看www99| 国产精品看片资源| 日韩美女免费观看| 欧美国产第一页| 欧美日韩一区二区在线播放| 在线色欧美三级视频| www.久久色.com| 日韩精品免费视频| 国产精品女人久久久久久| 日韩成人高清在线| 亚洲国产精品一区二区久| 色悠悠国产精品| 国产日产久久高清欧美一区| 日韩视频免费大全中文字幕| 日韩大片免费观看视频播放| 操91在线视频| 日韩精品在线看| 国产在线一区二区三区| 伊人亚洲福利一区二区三区| 亚洲国产91精品在线观看| 中文日韩在线视频| 成人免费网视频| 欧美激情精品在线| 久久久久www| 中文字幕在线国产精品| 亚洲午夜小视频| 午夜精品久久久久久久久久久久| 亚洲精品小视频在线观看| 成人写真视频福利网| 91精品免费久久久久久久久| 色妞欧美日韩在线| 少妇高潮久久77777| 欧美肥老太性生活视频| 欧美一级淫片播放口| 亚洲美女动态图120秒| 91精品国产综合久久香蕉最新版| 美女国内精品自产拍在线播放| 亚洲视频视频在线| 精品久久久久久电影| 亚洲**2019国产| 成人网在线免费看| 久久久免费精品视频| 成人日韩在线电影| 91国内揄拍国内精品对白| 欧美精品一二区| 奇门遁甲1982国语版免费观看高清| 久久激情视频免费观看| 亚洲欧美日韩在线高清直播| 亚洲成年人在线播放| 国产美女91呻吟求| 欧美亚洲伦理www| 亚洲视频视频在线| 亚洲乱码国产乱码精品精| 这里只有精品丝袜| zzijzzij亚洲日本成熟少妇| 国产日韩在线亚洲字幕中文| 国产噜噜噜噜噜久久久久久久久| 欧美视频二区36p| 国产亚洲一区精品| 久久精品国产成人精品| 久热在线中文字幕色999舞| 国产va免费精品高清在线观看| 国产中文欧美精品| 亚洲欧美另类人妖| 欧美中文字幕视频在线观看| 日韩美女在线观看一区| 久久影院资源网| 色综合影院在线| 精品免费在线观看| 久久91超碰青草是什么| 亚洲片在线观看| 亚洲精品国产品国语在线| 亚洲国内高清视频| 久久偷看各类女兵18女厕嘘嘘| 久久久国产精品免费| 国产精品中文字幕在线观看| 国产女同一区二区| 国产+人+亚洲| 有码中文亚洲精品| 亚洲xxxx3d| 日本a级片电影一区二区| 欧美三级欧美成人高清www| 91久久久久久久| 色偷偷91综合久久噜噜| 国精产品一区一区三区有限在线| 91精品国产综合久久久久久蜜臀| 日韩欧美视频一区二区三区| 91国产高清在线| 欧美电影在线播放| 成人春色激情网| 亚洲最大的网站| 一区二区日韩精品| 亚洲人线精品午夜| 欧美亚洲成人精品| 精品久久久久久中文字幕一区奶水| 成人免费视频网址| 91亚洲va在线va天堂va国| 中文字幕一区二区精品| 91av在线免费观看视频| 欧美一级高清免费播放| 亚洲人精选亚洲人成在线| 国产999精品久久久影片官网| 日韩视频精品在线| 亚洲高清一区二| 欧美精品在线第一页| 国产一区二区三区在线观看网站| 日韩有码在线观看| 亚洲天堂一区二区三区| 亚洲欧洲xxxx| 欧美亚洲激情在线| 国产精品一久久香蕉国产线看观看| 这里只有精品丝袜| 69国产精品成人在线播放| 国产+人+亚洲| 国产精品亚洲一区二区三区| 宅男66日本亚洲欧美视频| 亚洲精品二三区| 中文字幕一区二区精品| 亚洲精品久久久久中文字幕欢迎你| 不卡中文字幕av| 国产成人拍精品视频午夜网站| 91精品在线一区| 欧美性高潮床叫视频| 国产精品视频网站| 亚洲精品网站在线播放gif| 久久久91精品国产一区不卡| 亚洲成av人乱码色午夜| 日本免费久久高清视频| 全亚洲最色的网站在线观看| 国产91在线视频| 久久91精品国产91久久久| 欧美成aaa人片在线观看蜜臀|