一、利用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综合练习的更多相关文章

  1. web.xml中JSP配置及 EL表达式

    web.xml 中JSP配置.servlet配置 及 EL表达式 [摘要] servlet 基本配置 <servlet> <servlet-name>LoginServlet& ...

  2. MyEclipse 关闭拼写检查、JavaScript的检查Build、xml、JSP的Bulid检查

    前言 MyEclipse 的拼写检查.JavaScript的检查Build.xml.JSP的Bulid检查很讨厌,有时不仅会一直build卡住,而且明明是对的它却报错,示例: 关闭方法 1.关闭拼写检 ...

  3. MyEclipse导入主题文件epf后xml及jsp等页面中点击标签之后显示灰白

    MyEclipse导入主题文件epf后xml及jsp等页面中点击标签之后显示灰白,症状例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvVVAxOT ...

  4. 集合的综合练习:Poker牌

    /* 刘意教程示例:*/ package cn.onecool.cot; import java.util.ArrayList; import java.util.Collections; impor ...

  5. Java基础---Java---基础加强---内省的简单运用、注解的定义与反射调用、 自定义注解及其应用、泛型及泛型的高级应用、泛型集合的综合

    内省的简单运用: JavaBean是一种特殊的Java类,主要用于传递数据信息,这种java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则. 采用遍历BeanInfo的所有属性方式来查找和 ...

  6. 【转载】Hibernate之hbm.xml集合映射的使用(Set集合映射,list集合映射,Map集合映射)

    https://www.cnblogs.com/biehongli/p/6555994.html

  7. Java List集合和Map集合的综合应用

    public static void main(String[] args) { //--------------------------------------------------------- ...

  8. 解析转换json xml 集合 ado

    json提取 string str = "[{\"JUDGE_RESULT\":\"B类\",\"JUDGE_RESULT\":\ ...

  9. 集合映射Set(使用xml文件)

    如果持久类具有Set对象,可以在映射文件中使用set元素映射Set集合. set元素不需要索引元素. List和Set之间的区别是: Set只存储唯一的值. 我们来看看我们如何在映射文件中实现集合: ...

随机推荐

  1. Matplotlib基础知识

    Matplotlib基础知识 Matplotlib中的基本图表包括的元素 x轴和y轴 axis水平和垂直的轴线 x轴和y轴刻度 tick刻度标示坐标轴的分隔,包括最小刻度和最大刻度 x轴和y轴刻度标签 ...

  2. [BZOJ 4563]放棋子

    [BZOJ 4563]放棋子 题目 给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列,要求你在这个矩阵上放N枚棋子(障碍的位置不能放棋子),要求你放N个棋子 ...

  3. TSP服务商

    1.何为TSP? TSP([1] Service Provider),在Telematics产业链居于核心地位,上接汽车.车载设备制造商.网络运营商,下接内容提供商.谁掌控了TSP,谁就能掌握Tele ...

  4. nyoj_18_The Triangle_201312071533

    The Triangle 时间限制:1000 ms  |           内存限制:65535 KB 难度:4   描述 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 (Figure ...

  5. Spring MVC-集成(Integration)-Hibernate验证器示例(转载实践)

    以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_hibernate_validator.htm 说明:示例基于Spring MVC ...

  6. MySQL Master High Available 理论篇(二)

  7. [Algorithms] The Bayes Rule

    Prior odd: The idea is to take the odds for something happening (against it not happening), which we ...

  8. Chrome development tools学习笔记(3)

    (上次DOM的部分做了些补充,欢迎查看Chrome development tools学习笔记(2)) 利用DevTools Elements工具来调试页面样式 CSS(Cascading Style ...

  9. 欢聚时代校园招聘java开发一面经历

    收到yy短信通知笔试通过后隔天就一面了,面试时间是下午1点半,跟另外一个同学在1点半的时候已经到了目的酒店,发现面试都集中在一个大厅,摆了非常多桌椅,由不同的面试关在面试.等到2点多的时候才到我.先说 ...

  10. Mongodb---记一次事故故障

    2014.06.19.001---故障报告 事故发生时间 事故简述 事故责任方 是否解决 19:21-20:15 IISserverD盘即将溢出 是 一.事故描写叙述: 在19:21收到警报.显示II ...