文档章节

<Java 读取XML文件>学习日志(一)——DOM方式解析

WhuBit
 WhuBit
发布于 2016/11/03 23:03
字数 307
阅读 3
收藏 0
import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class DomTest {
	/*
	 * 使用DOM方式解析
	 * 2016/11/3
	 */
	public static void domTest(){
			DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();//创建一个DocumentBuilderFactory
			try {
				DocumentBuilder db = dbf.newDocumentBuilder();//创建一个DocumentBuilder
				Document d=db.parse("books.xml");//用parse方法传入路径
				NodeList nl=d.getElementsByTagName("book");//获得book节点集合
				for(int i=0;i<nl.getLength();i++){
					System.out.println("开始遍历第"+(i+1)+"本书");
					Node book=nl.item(i);//取得每一个book节点
					NamedNodeMap nnp=book.getAttributes();//获得每一个book节点的属性集合
					for(int j=0;j<nnp.getLength();j++){
						System.out.println("属性名:"+nnp.item(j).getNodeName()+"   属性值:"+nnp.item(j).getNodeValue());
						//用item()获得每一个属性的属性名和属性值
						
						//若已知属性名,修改第25、26行
//						Element book=(Element) nl.item(i);
//						book1.getAttribute("id");
							
						NodeList nlc=book.getChildNodes();//获得子节点
						for(int k=0;k<nlc.getLength();k++){
//							System.out.println(nlc.item(k).getNodeName());//!!!“#text”代表是空格+换行符组成的,也被作为一个节点
							if(nlc.item(k).getNodeType()==Node.ELEMENT_NODE){
								System.out.print(nlc.item(k).getNodeName()+" :");//解决方案:添加过滤
								//java将其后内容当作了它的子节点,文本内容是节点值
								System.out.print(nlc.item(k).getFirstChild().getNodeValue());
//								System.out.print(nlc.item(k).getTextContent());//获得两节点之间全部文本内容
								System.out.println();
							}
						}		
					}
				}		
			} catch (ParserConfigurationException e) {
				e.printStackTrace();
			} catch (SAXException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
					
		}
			
		public static void main(String[] args){
			domTest();
		}

}
```
`

© 著作权归作者所有

WhuBit
粉丝 1
博文 12
码字总数 4328
作品 0
武汉
私信 提问
Android读写XML(上)

注明:本文转自http://www.moandroid.com. 原文地址: http://www.moandroid.com/?p=508 XML 经常用作 Internet 上的一种数据格式,其文件格式想必大家都比较清楚,在这里我结合Android平台,...

晨曦之光
2012/03/01
404
0
Android 创建与解析XML(一)—— 概述

Android 是最常用的智能手机平台,XML 是数据交换的标准媒介,Android 中可以使用标准的XML生成器、解析器、转换器 API,对 XML 进行解析和转换。 XML,相关有DOM、SAX、JDOM、DOM4J、Xerce...

长平狐
2013/01/06
178
0
java解析xml文件四种方式介绍、性能比较和基本使用方法

一、基本介绍: 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特...

Candy_Desire
2014/08/20
1K
0
Tomcat的配置解析工具Apache Commons Digester

开篇  最近开始看Tomcat的源码,在catalina. createStartDigester方法中,Tomcat开发人员采用了Digester来读取conf/server.xml文件,以前读取xml文件一般采用Dom4j和SAX,因此对Digester比较...

晴天哥
2018/10/10
0
0
XML解析(DOM、SAX、JDOM和DOM4J)

众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM、SAX、JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址 DOM:在现在的Java JDK里都自带了,在xml-apis.jar包里 SA...

拷贝忍者卡卡习
2017/01/18
31
0

没有更多内容

加载失败,请刷新页面

加载更多

秒杀系统思路

业务分析 技术挑战 请求响应要快:无论成功失败,需要尽快返回给用户 架构设计   前端:静态化   站点层:限制请求数   服务层:乐观锁写缓存   数据库CAP:读写高可用,一致性,扩容...

雷开你的门
10分钟前
7
0
最全的教育行业大数据解决方案,个个针对痛点

大数据的悄然兴起也带动了教育行业的革新,移动教育、云课堂等的出现,使得教育行业再次成为了可以中长期保持高景气的行业。然而,初涉数据领域的教育行业同时也面临着相当大的难题,还需要更...

朕想上头条
14分钟前
5
0
预约模块设计分析

1.预约功能描述: 预约是小程序中常见的一种商品管理系统,商家可根据商品或服务的特性,灵活设置预约细节,为用户提供线上预约服务,如场地预约,商品预定等,实现高效经营。 预约场景: ...

鱼煎
17分钟前
4
0
阿里云日志服务构建网站实时分析大盘实战

场景分析 挖掘数据价值是当前企业级网站共同面临的问题。买买网是一个电商平台网站,每天拥有大量的用户访问和购买记录。为了引导用户直接消费,提升购买率和转化率,不同的用户类别需要推荐...

阿里云官方博客
18分钟前
2
0
TL665xF-EasyEVM开发板硬件处理器、NAND FLASH、RAM

广州创龙结合TI KeyStone系列多核架构TMS320C665x及Xilinx Artix-7系列FPGA设计的TL665xF-EasyEVM开发板是一款DSP+FPGA高速大数据采集处理平台,其底板采用沉金无铅工艺的6层板设计,适用于高...

Tronlong创龙
22分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部