jsp+javabean+XML

yangxiaonawzy 2010-08-09 11:45:26
各位高手我想实现这样一个功能,就是读取XML内容封装在一个实体类中,并在页面显示。
我使用的是DOM4J来读取xml,我想通过一个循环,在循环中读取具体某个节点的内容并封装到实体类中。这样改怎么实现啊!我找了半天DOM4J的属性,可就是实现不了。我对读取xml不是特别的熟悉。请高手帮帮忙啊!
我的xml内容如下所示;
<?xml version="1.0" encoding="GBK"?>
<rss>
<item id="2">
<title>河南嵩山历史建筑群申遗成功 部分景点免费一月</title>
<link>2</link>
<description>
如果每个景区头上都有一顶皇冠,那“世界自然文化遗产”无疑是皇冠上最璀璨的一颗宝石。
</description>
<pubDate>2010年08月09日08:02</pubDate>
</item>
<item id="3">
<title>王菲冷艳装扮拍摄杂志封面 穿羽毛裙演绎另类妩媚</title>
<link>3</link>
<description>
久违的天后从拍摄第一个杂志封面开始全面启动复出之旅!
</description>
<pubDate>2010-08-09</pubDate>
</item>
<item id="4">
<title>鸡蛋+米汤 营养赛牛奶不怕添加剂</title>
<link>4</link>
<description>
经过“三聚氰胺”风暴以后,国家对乳制品的安全监管措施已经是空前的严格。我们应该相
</description>
<pubDate>2010-08-09</pubDate>
</item>
</rss>
另外高手,我想知道xml在实际项目中的应用有哪些???
...全文
106 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangxiaonawzy 2010-08-12
  • 打赏
  • 举报
回复
谢谢各位的帮助啊!问题已经解决了,1楼的答案太标准了
学习Java中 2010-08-09
  • 打赏
  • 举报
回复
ResultBean

package test;

import java.util.ArrayList;

public class ResultBean {

private ArrayList item ;

public ArrayList getItem() {
return item;
}

public void setItem(ArrayList item) {
this.item = item;
}

}


ItemBean

package test;

public class ItemBean {

private String id;
private String title;
private String link;
private String description;
private String pubDate;

public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getLink() {
return link;
}
public void setLink(String link) {
this.link = link;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getPubDate() {
return pubDate;
}
public void setPubDate(String pubDate) {
this.pubDate = pubDate;
}

}


Test

package test;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class Dom4j {

private SAXReader reader ;
private Document document;
private static String path = "c:/Dom4j.xml";


public Dom4j(String str) throws DocumentException {
reader = new SAXReader();
document = reader.read(new File(str));
}

public ResultBean getResultBean() {
ResultBean rb = new ResultBean();
ItemBean iBean ;
ArrayList al = new ArrayList();

Element root = document.getRootElement();
List<Element> list = root.elements("item");
for(int i= 0;i<list.size();i++) {
iBean = new ItemBean();
iBean.setId(list.get(i).attributeValue("id"));
iBean.setTitle(list.get(i).elementText("title"));
.....
al.add(iBean);
}
rb.setItem(al);

return rb;
}

public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Dom4j test = new Dom4j(path);

}
}

lshwulove135 2010-08-09
  • 打赏
  • 举报
回复
xml 跨平台,跨语言,值得学习!
myhope88 2010-08-09
  • 打赏
  • 举报
回复
网上搜索下挺多的吧
wuchengjia 2010-08-09
  • 打赏
  • 举报
回复
做WEB开发,一般都会用到XML,所以XML学好了对你以后的开发也会有很大的帮助
weipj007 2010-08-09
  • 打赏
  • 举报
回复
public static List Read(String path, String rootName, List propertyList)
throws Exception {
List<Map> list = new ArrayList();
try {

SAXReader saxReader = new SAXReader();
org.dom4j.Document document = saxReader.read(path);

List list1 = document.selectNodes(rootName);
Iterator iter = list1.iterator();
while (iter.hasNext()) {
org.dom4j.Element element = (org.dom4j.Element) iter.next();
Map<Object, Object> map = new HashMap<Object, Object>();
for (int j = 0; j < propertyList.size(); j++) {
String key = (String) propertyList.get(j);
Iterator iterator = element.elementIterator(key);
while (iterator.hasNext()) {
org.dom4j.Element firstNameElement = (org.dom4j.Element) iterator
.next();
String value = firstNameElement.getText();

map.put(key, value);

}

}
list.add(map);
}

} catch (Exception e) {
e.printStackTrace();

}
return list;
}


public static void main(String[] args) {
try {
String path="c:/test.xml";
List list=new ArrayList();
list.add("title");
list.add("link");
List list1= ParseXml.Read(path, "//rss/item",list);
for(int i=0;i<list1.size();i++){
System.out.println(((Map)(list1.get(i))).get("title")+":"+((Map)(list1.get(i))).get("link"));
}
} catch (Exception e) {
e.printStackTrace();
System.out.println(e.getMessage());


}

}
有关那个属性取值,楼主可以自己改一下。
A. 本留言本采用jsp+javabean+servlet+mysql B. 本系统运行环境: windows/linux+ jdk1.4+resin(或tomcat)+jdbc+mysql 5.0 目录结构如下: 本版本数据库采用的是MYSQL,使用JDBC驱动,所以要求有MYSQL的JDBC的驱动程序;将驱动程序放在lib目录下,将WEB-INF目录下的web.xml文件考到你的发布目录下,web.xml是一些servlet的指向 同时将打包的note.jar文件放在lib目录下 本程序的所有的javabean和servlet类文件在src目录下 3、配置文件 修改本软件的数据库连接的配置文件在classes目录下,其中“isLog=on”代表打开日志功能,如果是“isLog=off”的话就表示关闭日志, logPath=D:\\jsp\\com\\ntsky\\log日志路径,logFile=DBConnectionManager.log,日志名相关的请看db.properties(解释得很详细) 不过注意在windows下和linux下路径稍微有点区别,在linux下文档为logPath=/www/log 表示在/www/log目录下。 请填写好你的URL访问路径,比如你的jsp在你的发布目录的note下,就请将你的SiteBaseURL设置成“SiteBaseURL=http://127.0.0.1:8080/note/” 端口号可以改 注意note后还有个/ 4、 数据库 数据库采用mysql 数据库的源文件在sql下的mysql.txt 对应的在sql下还有一份note.sql,你可以通过mysql –u root –p notejspInIt.jsp,进行后台密码的初始话,管理后台的密码进行了MD5加密,降低了了秘密被人盗用的几率 6、 此留言本实现了MVC模式,完全是通过servlet控制数据,而且使用了连接池,一些基本的类也是完全提供,对学习jsp的MVC模式有很大的帮助。

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧