XML、集合、JSP综合练习
一、利用DOM解析XML文件得到信息;存入泛型集合中在JSP页面循环打印读取的信息
a) 编写XML文件;添加测试节点数据
b) 建立web项目;在JSP页面中使用DOM解析XML技术得到XML中的新闻信息
c) 创建实体类news;对新闻实体类进行封装;使用新闻实体类对新闻数据进行封装
d) 创建新闻类泛型集合存储每条新闻信息
e) 在页面利用循环和显示标签展示数据
效果:
XML文件:

展示效果:

编写xml文件
<?xml version="1.0" encoding="UTF-8"?> -<news> -<new id="1"> <title>关于依法治国论述摘编发行会见缅甸客人</title> <type>时政要闻</type> <date>2015-04-27 17:40</date> <author>小编</author> </new> -<new id="2"> <title>关于依法治国论述摘编发行会见缅甸客人</title> <type>时政要闻</type> <date>2015-04-27 17:40</date> <author>小编</author> </new> -<new id="3"> <title>关于依法治国论述摘编发行会见缅甸客人</title> <type>时政要闻</type> <date>2015-04-27 17:40</date> <author>小编</author> </new> -<new id="4"> <title>关于依法治国论述摘编发行会见缅甸客人</title> <type>时政要闻</type> <date>2015-04-27 17:40</date> <author>小编</author> </new> -<new id="5"> <title>关于依法治国论述摘编发行会见缅甸客人</title> <type>时政要闻</type> <date>2015-04-27 17:40</date> <author>小编</author> </new> -<new id="6"> <title>关于依法治国论述摘编发行会见缅甸客人</title> <type>时政要闻</type> <date>2015-04-27 17:40</date> <author>小编</author> </new> -<new id="7"> <title>关于依法治国论述摘编发行会见缅甸客人</title> <type>时政要闻</type> <date>2015-04-27 17:40</date> <author>小编</author> </new> -<new id="8"> <title>关于依法治国论述摘编发行会见缅甸客人</title> <type>时政要闻</type> <date>2015-04-27 17:40</date> <author>小编</author> </new> -<new id="9"> <title>关于依法治国论述摘编发行会见缅甸客人</title> <type>时政要闻</type> <date>2015-04-27 17:40</date> <author>小编</author> </new> -<new id="10"> <title>关于依法治国论述摘编发行会见缅甸客人</title> <type>时政要闻</type> <date>2015-04-27 17:40</date> <author>小编</author> </new> -<new id="11"> <title>关于依法治国论述摘编发行会见缅甸客人</title> <type>时政要闻</type> <date>2015-04-27 17:40</date> <author>小编</author> </new> </news>
创建实体类news;对新闻实体类进行封装;使用新闻实体类对新闻数据进行封装
package entity; /**
* 新闻类
* @author Administrator
*
*/
public class News { private String id;//新闻ID
private String title;//标题
private String type;//新闻类型
private String date;//发布时间
private String author;//作者 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 getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
} }
用泛型集合从页面输出效果
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="javax.xml.parsers.DocumentBuilderFactory"%>
<%@page import="javax.xml.parsers.DocumentBuilder"%>
<%@page import="org.w3c.dom.Document"%>
<%@page import="org.w3c.dom.NodeList"%>
<%@page import="org.w3c.dom.Node"%>
<%@page import="entity.News"%>
<%@page import="org.w3c.dom.Element"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>解析显示新闻</title> </head> <body>
<%
//建立dom解析器工厂实例
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); //得到解析器对象
DocumentBuilder db = dbf.newDocumentBuilder(); //得到web工程根目录
System.out.print(request.getRealPath("/"));
//加载XML文件;创建docuemnt对象(生成dom树)
Document dom = db.parse(request.getRealPath("/")+"/new.xml"); //开始解析新闻
NodeList nodelist = dom.getElementsByTagName("new"); //创建泛型集合存储解析的新闻信息
List<News> newslist = new ArrayList<News>(); //循环解析
for(int i = 0; i < nodelist.getLength(); i++){ //得到每个node(节点)对象
Node newnode = nodelist.item(i); //将节点对象转换为元素对象
Element element = (Element)newnode; //得到新闻的id属性
String newid = element.getAttribute("id"); //创建新闻对象
News news = new News(); //将id存储在新闻对象中
news.setId(newid); //获取其他节点属性
for(Node news_child = newnode.getFirstChild(); news_child != null;news_child = news_child.getNextSibling()){ //判断当前是元素对象还是节点对象
if(news_child.getNodeType() == Node.ELEMENT_NODE){ if(news_child.getNodeName().equals("title")){
//获取新闻标题;将标题封装到对象中
news.setTitle(news_child.getFirstChild().getNodeValue());
}
if(news_child.getNodeName().equals("type")){
//获取新闻类型;将标题封装到对象中
news.setType(news_child.getFirstChild().getNodeValue());
}
if(news_child.getNodeName().equals("date")){
//获取新闻发布时间;将标题封装到对象中
news.setDate(news_child.getFirstChild().getNodeValue());
}
if(news_child.getNodeName().equals("author")){
//获取新闻作者;将标题封装到对象中
news.setAuthor(news_child.getFirstChild().getNodeValue());
} }
}
//将新闻对象放入泛型集合中
newslist.add(news);
}
%> <center>
<table style="width: 800px; height: auto; border:1px solid #900;font-size: 12px" cellpadding="0" cellspacing="0">
<tr style="text-align: center;background: #900; color: #ffffff;border: 1px solid #900">
<td>新闻ID</td>
<td>新闻标题</td>
<td>新闻类型</td>
<td>发布时间</td>
<td>发布作者</td>
</tr>
<%
//循环新闻列表
for(int i = 0; i < newslist.size(); i ++){
//取出集合中每个新闻实体对象
News news = newslist.get(i);
%>
<tr>
<td style="text-align: center;border: 1px solid #900;height:30px"><%=news.getId() %></td>
<td style="text-align: center;border: 1px solid #900;height:30px"><%=news.getTitle() %></td>
<td style="text-align: center;border: 1px solid #900;height:30px"><%=news.getType() %></td>
<td style="text-align: center;border: 1px solid #900;height:30px"><%=news.getDate() %></td>
<td style="text-align: center;border: 1px solid #900;height:30px"><%=news.getAuthor() %></td>
</tr>
<%
}
%>
</table>
</center>
</body>
</html>
XML、集合、JSP综合练习的更多相关文章
- web.xml中JSP配置及 EL表达式
web.xml 中JSP配置.servlet配置 及 EL表达式 [摘要] servlet 基本配置 <servlet> <servlet-name>LoginServlet& ...
- MyEclipse 关闭拼写检查、JavaScript的检查Build、xml、JSP的Bulid检查
前言 MyEclipse 的拼写检查.JavaScript的检查Build.xml.JSP的Bulid检查很讨厌,有时不仅会一直build卡住,而且明明是对的它却报错,示例: 关闭方法 1.关闭拼写检 ...
- MyEclipse导入主题文件epf后xml及jsp等页面中点击标签之后显示灰白
MyEclipse导入主题文件epf后xml及jsp等页面中点击标签之后显示灰白,症状例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvVVAxOT ...
- 集合的综合练习:Poker牌
/* 刘意教程示例:*/ package cn.onecool.cot; import java.util.ArrayList; import java.util.Collections; impor ...
- Java基础---Java---基础加强---内省的简单运用、注解的定义与反射调用、 自定义注解及其应用、泛型及泛型的高级应用、泛型集合的综合
内省的简单运用: JavaBean是一种特殊的Java类,主要用于传递数据信息,这种java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则. 采用遍历BeanInfo的所有属性方式来查找和 ...
- 【转载】Hibernate之hbm.xml集合映射的使用(Set集合映射,list集合映射,Map集合映射)
https://www.cnblogs.com/biehongli/p/6555994.html
- Java List集合和Map集合的综合应用
public static void main(String[] args) { //--------------------------------------------------------- ...
- 解析转换json xml 集合 ado
json提取 string str = "[{\"JUDGE_RESULT\":\"B类\",\"JUDGE_RESULT\":\ ...
- 集合映射Set(使用xml文件)
如果持久类具有Set对象,可以在映射文件中使用set元素映射Set集合. set元素不需要索引元素. List和Set之间的区别是: Set只存储唯一的值. 我们来看看我们如何在映射文件中实现集合: ...
随机推荐
- PAT 1091. Acute Stroke (bfs)
One important factor to identify acute stroke (急性脑卒中) is the volume of the stroke core. Given the re ...
- 6.3.4 使用marshal 模块操作二进制文件
Python 标准库 marshal 也可以进行对象的序列化和反序列化,下面的代码进行了简单演示. import marshal x1 = 30 x2 = 5.0 x3 = [1,2,3] x4 = ...
- hdu2001 计算两点间的距离【C++】
计算两点间的距离 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...
- php ip伪装访问
打算做个采集,无记录下来备用 php的curl搞定ip伪装来采集内容.以前写过一段代码采集一个数据来处理.由于数据量过大,同一ip采集.经常被限制,或者列为黑名单. 写了段代码伪装ip,原理是,客 ...
- nyoj_88_汉诺塔(一)_201308201730
汉诺塔(一)时间限制:1000 ms | 内存限制:65535 KB难度:3描述在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针.印度教的主神梵天在创 ...
- 洛谷 P2997 [USACO10NOV]旗帜Banner
P2997 [USACO10NOV]旗帜Banner 题目背景 题目大意(by:曹彦臣): 平面上有(0,0)到(n,m)的(n+1)*(m+1)个点.问有多少点对所连的线段不过其他点,且长度在[l, ...
- BZOJ 1492 货币兑换 cdq分治或平衡树维护凸包
题意:链接 方法:cdq分治或平衡树维护凸包 解析: 这道题我拒绝写平衡树的题解,我仅仅想说splay不要写挂,insert边界条件不要忘.del点的时候不要脑抽d错.有想写平衡树的去看140142或 ...
- 权限问题导致无法删除ftp文件
首先吐槽一下,使用新版编辑器,发了两遍愣是time out,果断放弃 这个文章也是一件小事,大致说一下: 有一个java操作ftp文件的程序,运行删除时,总是返回false,也没有报错.開始考虑是没有 ...
- RabbitMQ基本管理(下)
为了可以登陆RabbitMQ,必须创建RabbitMQ用户账号. # rabbitmqctl add_user elite elite123 Creating user "elite&quo ...
- hdu3592 World Exhibition --- 差分约束
这题建图没什么特别 x个条件:Sb-Sa<=c y个条件:Sa-Sb<=-c 题目问的是.1和n之间的关系. 有负环的话,整个就不可能成立,输出-1 假设图是连通的(1到n是连通的),就输 ...