zoukankan      html  css  js  c++  java
  • JSP解析XML数据

    <%@ 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=" 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数据
    
    <?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>
    

      

  • 相关阅读:
    Learn D3 入门文档:Interaction
    获取和设置浏览器缩放比
    PC禁止浏览器缩放
    CSS实用技巧(中)
    vsCode设置Bash启动 最新版本1.60默认终端配置修改
    SpringBoot集成itextpdf动态生成pdf并展示
    SpringBoot集成markdown实现文档管理
    SpringBoot实现用户统一管理与单点登陆
    采用Angular + NG-ZORRO + Ng Alain 框架搭建的 MES前端框架
    node调试
  • 原文地址:https://www.cnblogs.com/msl151/p/4495761.html
Copyright © 2011-2022 走看看