分享
 
 
 

在JSP开发中使用jdom解析临时存放数据的XML文件

王朝java/jsp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

在我工作过程中,遇到了对临时存储产品信息的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);

[1] [2] [3] [4] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有