一、利用DOM解析XML文件得到信息;存入泛型集合中在JSP页面循环打印读取的信息

a)         编写XML文件;添加测试节点数据

b)         建立web项目;在JSP页面中使用DOM解析XML技术得到XML中的新闻信息

c)         创建实体类news;对新闻实体类进行封装;使用新闻实体类对新闻数据进行封装

d)         创建新闻类泛型集合存储每条新闻信息

e)         在页面利用循环和显示标签展示数据

效果:

XML文件:

展示效果:

编写xml文件

  1 <?xml version="1.0" encoding="UTF-8"?>
  2
  3 -<news>
  4
  5
  6 -<new id="1">
  7
  8 <title>关于依法治国论述摘编发行会见缅甸客人</title>
  9
 10 <type>时政要闻</type>
 11
 12 <date>2015-04-27 17:40</date>
 13
 14 <author>小编</author>
 15
 16 </new>
 17
 18
 19 -<new id="2">
 20
 21 <title>关于依法治国论述摘编发行会见缅甸客人</title>
 22
 23 <type>时政要闻</type>
 24
 25 <date>2015-04-27 17:40</date>
 26
 27 <author>小编</author>
 28
 29 </new>
 30
 31
 32 -<new id="3">
 33
 34 <title>关于依法治国论述摘编发行会见缅甸客人</title>
 35
 36 <type>时政要闻</type>
 37
 38 <date>2015-04-27 17:40</date>
 39
 40 <author>小编</author>
 41
 42 </new>
 43
 44
 45 -<new id="4">
 46
 47 <title>关于依法治国论述摘编发行会见缅甸客人</title>
 48
 49 <type>时政要闻</type>
 50
 51 <date>2015-04-27 17:40</date>
 52
 53 <author>小编</author>
 54
 55 </new>
 56
 57
 58 -<new id="5">
 59
 60 <title>关于依法治国论述摘编发行会见缅甸客人</title>
 61
 62 <type>时政要闻</type>
 63
 64 <date>2015-04-27 17:40</date>
 65
 66 <author>小编</author>
 67
 68 </new>
 69
 70
 71 -<new id="6">
 72
 73 <title>关于依法治国论述摘编发行会见缅甸客人</title>
 74
 75 <type>时政要闻</type>
 76
 77 <date>2015-04-27 17:40</date>
 78
 79 <author>小编</author>
 80
 81 </new>
 82
 83
 84 -<new id="7">
 85
 86 <title>关于依法治国论述摘编发行会见缅甸客人</title>
 87
 88 <type>时政要闻</type>
 89
 90 <date>2015-04-27 17:40</date>
 91
 92 <author>小编</author>
 93
 94 </new>
 95
 96
 97 -<new id="8">
 98
 99 <title>关于依法治国论述摘编发行会见缅甸客人</title>
100
101 <type>时政要闻</type>
102
103 <date>2015-04-27 17:40</date>
104
105 <author>小编</author>
106
107 </new>
108
109
110 -<new id="9">
111
112 <title>关于依法治国论述摘编发行会见缅甸客人</title>
113
114 <type>时政要闻</type>
115
116 <date>2015-04-27 17:40</date>
117
118 <author>小编</author>
119
120 </new>
121
122
123 -<new id="10">
124
125 <title>关于依法治国论述摘编发行会见缅甸客人</title>
126
127 <type>时政要闻</type>
128
129 <date>2015-04-27 17:40</date>
130
131 <author>小编</author>
132
133 </new>
134
135
136 -<new id="11">
137
138 <title>关于依法治国论述摘编发行会见缅甸客人</title>
139
140 <type>时政要闻</type>
141
142 <date>2015-04-27 17:40</date>
143
144 <author>小编</author>
145
146 </new>
147
148 </news>

创建实体类news;对新闻实体类进行封装;使用新闻实体类对新闻数据进行封装

package entity;/*** 新闻类* @author Administrator**/
public class News {private String id;//新闻IDprivate 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;}}

用泛型集合从页面输出效果

  1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2 <%@page import="javax.xml.parsers.DocumentBuilderFactory"%>
  3 <%@page import="javax.xml.parsers.DocumentBuilder"%>
  4 <%@page import="org.w3c.dom.Document"%>
  5 <%@page import="org.w3c.dom.NodeList"%>
  6 <%@page import="org.w3c.dom.Node"%>
  7 <%@page import="entity.News"%>
  8 <%@page import="org.w3c.dom.Element"%>
  9 <%
 10 String path = request.getContextPath();
 11 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 12 %>
 13
 14 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 15 <html>
 16   <head>
 17     <base href="<%=basePath%>">
 18
 19     <title>解析显示新闻</title>
 20
 21   </head>
 22
 23   <body>
 24     <%
 25         //建立dom解析器工厂实例
 26         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
 27
 28         //得到解析器对象
 29         DocumentBuilder db = dbf.newDocumentBuilder();
 30
 31     //得到web工程根目录
 32         System.out.print(request.getRealPath("/"));
 33         //加载XML文件;创建docuemnt对象(生成dom树)
 34         Document dom = db.parse(request.getRealPath("/")+"/new.xml");
 35
 36         //开始解析新闻
 37         NodeList nodelist = dom.getElementsByTagName("new");
 38
 39         //创建泛型集合存储解析的新闻信息
 40         List<News> newslist = new ArrayList<News>();
 41
 42         //循环解析
 43         for(int i = 0; i < nodelist.getLength(); i++){
 44
 45             //得到每个node(节点)对象
 46             Node newnode = nodelist.item(i);
 47
 48             //将节点对象转换为元素对象
 49             Element element = (Element)newnode;
 50
 51             //得到新闻的id属性
 52             String newid = element.getAttribute("id");
 53
 54             //创建新闻对象
 55             News news = new News();
 56
 57             //将id存储在新闻对象中
 58             news.setId(newid);
 59
 60             //获取其他节点属性
 61             for(Node news_child = newnode.getFirstChild(); news_child != null;news_child = news_child.getNextSibling()){
 62
 63                 //判断当前是元素对象还是节点对象
 64                 if(news_child.getNodeType() == Node.ELEMENT_NODE){
 65
 66                     if(news_child.getNodeName().equals("title")){
 67                         //获取新闻标题;将标题封装到对象中
 68                         news.setTitle(news_child.getFirstChild().getNodeValue());
 69                     }
 70                     if(news_child.getNodeName().equals("type")){
 71                         //获取新闻类型;将标题封装到对象中
 72                         news.setType(news_child.getFirstChild().getNodeValue());
 73                     }
 74                     if(news_child.getNodeName().equals("date")){
 75                         //获取新闻发布时间;将标题封装到对象中
 76                         news.setDate(news_child.getFirstChild().getNodeValue());
 77                     }
 78                     if(news_child.getNodeName().equals("author")){
 79                         //获取新闻作者;将标题封装到对象中
 80                         news.setAuthor(news_child.getFirstChild().getNodeValue());
 81                     }
 82
 83                 }
 84             }
 85             //将新闻对象放入泛型集合中
 86             newslist.add(news);
 87         }
 88     %>
 89
 90     <center>
 91         <table style="width: 800px; height: auto; border:1px solid #900;font-size: 12px" cellpadding="0" cellspacing="0">
 92             <tr style="text-align: center;background: #900; color: #ffffff;border: 1px solid #900">
 93                 <td>新闻ID</td>
 94                 <td>新闻标题</td>
 95                 <td>新闻类型</td>
 96                 <td>发布时间</td>
 97                 <td>发布作者</td>
 98             </tr>
 99             <%
100                 //循环新闻列表
101                 for(int i = 0; i < newslist.size(); i ++){
102                     //取出集合中每个新闻实体对象
103                     News news = newslist.get(i);
104             %>
105             <tr>
106                 <td style="text-align: center;border: 1px solid #900;height:30px"><%=news.getId() %></td>
107                 <td style="text-align: center;border: 1px solid #900;height:30px"><%=news.getTitle() %></td>
108                 <td style="text-align: center;border: 1px solid #900;height:30px"><%=news.getType() %></td>
109                 <td style="text-align: center;border: 1px solid #900;height:30px"><%=news.getDate() %></td>
110                 <td style="text-align: center;border: 1px solid #900;height:30px"><%=news.getAuthor() %></td>
111             </tr>
112             <%
113                 }
114             %>
115         </table>
116     </center>
117   </body>
118 </html>

转载于:https://www.cnblogs.com/wlx520/p/4493058.html

XML、集合、JSP综合练习相关推荐

  1. xml控制html样式,XML与CSS综合设置实例

    XML与CSS综合设置实例 HTTP代码如下: @charset "utf-8"; @charset "utf-8"; bookname{ display:bl ...

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

    MyEclipse导入主题文件epf后xml及jsp等页面中点击标签之后显示灰白,症状如下: 解决方案如下:

  3. Servlet+MyBatis+jsp综合案例-----员工信息管理

    需求:完成一个表名为(employee)的员工管理系统,登录的表名为(user).     员工属性有:员工编号(id).员工姓名(name).员工年龄(age).员工性别(sex).     员工电 ...

  4. web.xml、JSP原理、指令

    web应用和web.xml JSP(java server page)本质是servlet,因为JSP最终要编译成servlet才能运行. Tomcat的webapps路径下的web项目中的WEB-I ...

  5. jsp到java xml配置,JSP中web配置:web.xml

    # re: JSP中web配置:web.xml 2007-07-02 12:24 和田雨 - http://java.sun.com/xml/ns/j2ee" xmlns:j2ee=&quo ...

  6. eclipse中为了format的代码更加好看,少换行,可以设置java、xml、jsp的代码line width。

    原因:eclipse默认的代码line width是80, 格式化代码后,经常换行,非常难看. 解决办法:jsp 和 xml 解决比较简单. 打开一个jsp 或 xml .  右键->prefe ...

  7. 关于Eclipse中XML、JSP、JS等文件打开方式的设置

    新装了开发环境,发现XML中的class不能以Ctrl+点击链接到相应的类:装了SPKET后也没有提示功能,还有一些常用的注释等快捷键也不能用.最终发现是打开方式导致的,可以在节点上选择Open Wi ...

  8. 【JSP综合课程设计】图书借阅系统设计与实现

    基于JSP的图书借阅系统设计与实现 1 绪论 1.1 课题背景及现状 1.2 开发工具及技术介绍 2 详细设计 2.1 系统主要功能模块介绍 2.2系统功能设计 2.3 核心代码 2.3.1登录注册模 ...

  9. 2021-08-19集合框架综合案例

    二.案例题目描述: 请实现一个简单的图书管理系统,要求如下: 1)定义图书类Book,具有属性账号id,书名name.作者author 和价格price,在创建图书对象时要求通过构造器进行创建,一次性 ...

最新文章

  1. 【OpenCV 4开发详解】分割图像——Mean-Shift分割算法
  2. YUM部署高版本LNMP环境
  3. java 端口8161_ActiveMQ_Windows和Linux版本的安装部署
  4. Hp linux tar 解压,tar命令的用法(百度)(HP_UX)
  5. LeetCode Binary Tree Preorder Traversal(二叉树的前序遍历)
  6. VirtualBox虚拟机中Ubuntu11.10安装Additions出现 读写错误的解决办法
  7. SpringCloud Netflix Ribbon
  8. php geteditor,wordpress函数get_editor_stylesheets()用法示例
  9. 世界上最有能量的语言,一定要经常说!
  10. idea json转对象(Java实体类)
  11. jpg、jpeg、png... 的区别
  12. 二级计算机vf题型,计算机二级VF考试常见题型与解题技巧
  13. 如何自己搭建外卖红包平台,操作外卖CPS佣金提成实现躺赚?
  14. 论文笔记7 --(ReID)Video-based Person Re-identification via Self Paced Weighting
  15. Linux中断原理、上半部和下半部、硬中断和软中断
  16. VUE3学习笔记(细节)
  17. 【大数据入门】Hadoop技术原理与应用之基于Hadoop的数据仓库Hive
  18. 高斯消元简单线性代数线性基学习记录
  19. Cocos Creator入门实战:桌球小游戏
  20. heigh,clientHeight , scrollHeight , offsetHeight介绍

热门文章

  1. 转: 网卡名字eth0,eth1的修改方法
  2. html5 canvas画进度条
  3. Ubuntu 14.04.1 配置 Android 源码开发环境(jdk版本切换)(转载)
  4. 【转】android手势处理揭秘
  5. OkHttpClient源码分析(五)—— ConnectInterceptor和CallServerInterceptor
  6. P3482 [POI2009]SLO-Elephants
  7. Rust 1.27支持SIMD
  8. mysql group by using filesort优化
  9. 微信公众号接口权限表汇总
  10. 控制台程序如何加图标