Java眼中的XML--文件读取--1 应用DOM方式解析XML
初次邂逅XML:

需要解析的XML文件:

这里有两个book子节点。
1、如何进行XML文件解析前的准备工作,另外解析先获取book节点。

这个我后来看懂了:

这个Node的ELEMENT_NODE=1和上面是一样的。


 public class DOMTest {
     public static void main(String[] args) {
         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
         try {
             DocumentBuilder db = dbf.newDocumentBuilder();
             Document d = db.parse("books.xml");
             //1、根据节点名book,获取节点集合
             NodeList nodelist = d.getElementsByTagName("book");
             //2、遍历集合中所有的元素(节点)
             for (int i = 0; i < nodelist.getLength(); i++) {
                 Node node = nodelist.item(i);
                 //3、获取每个节点的属性集合,并输出属性的个数
                 NamedNodeMap attrMap = node.getAttributes();
                 System.out.println("属性的个数是:"+attrMap.getLength());
                 //4、遍历所有属性,并输出属性值
                 for (int j = 0; j < attrMap.getLength(); j++) {
                     Node attr = attrMap.item(j);
                     System.out.println(attr.getNodeName()+":"+attr.getNodeValue());
                 }
             }
         } catch (ParserConfigurationException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         } catch (SAXException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         } catch (IOException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
     }
 }
第一种 的 完整代码

 public class DOMTest {
     public static void main(String[] args) {
         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
         try {
             DocumentBuilder db = dbf.newDocumentBuilder();
             Document d = db.parse("books.xml");
             //1、根据节点名book,获取节点集合
             NodeList nodelist = d.getElementsByTagName("book");
             //2、遍历集合中所有的元素(节点),并强制转换为element
             for (int i = 0; i < nodelist.getLength(); i++) {
                 Element node = (Element) nodelist.item(i);
                 String str = node.getAttribute("id");
                 System.out.println(str);
             }
         } catch (ParserConfigurationException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         } catch (SAXException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         } catch (IOException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
     }
 }
第二种 完整代码
上面两种情况的对比归纳,理解的时候,脑子里要有XML节点的图:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book id="1"> 换行符算一个子节点,这里是第一个
<name>冰与火之歌</name> 第二个换行符
<author>乔治马丁</author> 第三个
<year>2014</year> 第四个
<price>89</price> 第五个,所以加上正儿八经的四个节点,一共9个子节点
</book>
<book id="2">
<name>安徒生童话</name>
<year>2004</year>
<price>77</price>
<language>English</language>
</book>
</bookstore>
下面进行解析子节点:
获取节点名



Java眼中的XML--文件读取--1 应用DOM方式解析XML的更多相关文章
- 用JAXP的dom方式解析XML文件
		用JAXP的dom方式解析XML文件,实现增删改查操作 dom方式解析XML原理 XML文件 <?xml version="1.0" encoding="UTF-8 ... 
- Android -- 创建XML文件对象及其序列化, pull解析XML文件
		1. 创建XML文件对象及其序列化 示例代码:(模拟以xml格式备份短信到SD卡) SmsInfo.java, bean对象 /** * 短信的业务bean * @author Administrat ... 
- 在iOS 开发中用GDataXML(DOM方式)解析xml文件
		因为GDataXML的内部实现是通过DOM方式解析的,而在iOS 开发中用DOM方式解析xml文件,这个时候我们需要开启DOM,因为ios 开发中是不会自动开启的,只有在mac 开发中才自动开启的.我 ... 
- 用DOM方式解析XML
		一.用DOM方式解析XML 此例子节点结构如下: 1.获取book节点属性 (1).如果不知道节点的属性,通过 NamedNodeMap attrs = book.getAttributes(); 来 ... 
- Dom方式解析XML
		public class TestXML { public static void main(String[] args) throws SAXException, IOException { //D ... 
- Java&Xml教程(二)使用DOM方式解析XML文件
		DOM XML 解析方式是最容易理解的,它將XML文件作为Document对象读取到内存中,然后你可以轻松地遍历不同的元素和节点对象.遍历元素和节点不需要按照顺序进行. DOM解析方式适合尺寸较小的X ... 
- DOM方式解析xml实例2
		老样子,javabean实体类: import java.io.*; public class Book implements Serializable { private int id; priva ... 
- Android程序解析XML文件的方法及使用PULL解析XML案例
		一.一般解析XML文件的方法有SAX和DOM.PULL (1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信 ... 
- DOM方式解析XML文件实例
		books.XML文件: <?xml version="1.0" encoding="utf-8"?><bookstore> &l ... 
随机推荐
- Java -- 获取当前日期、当月月初日期、月末日期
			Learn From:http://blog.csdn.net/sunhuwh/article/details/39161323 public class CalendarTest { public ... 
- EF Attach时已存在的处理方式
			如果我们在先前的步骤中读取过数据,如 var list = db.Model.ToList(); 之后再,附加 var o = new Model { Id = 1 }; db.Model.Attac ... 
- 介绍cms
			在这篇文章中,我们先来定义下什么是CMS(Content Management System)系统,在网站中它是如何帮你来变更内容的. 最后我将展示如何登录Umbraco系统. 简单来说CMS是一个系 ... 
- Linux文件查找工具之find “大宝剑”--转载
			原文地址:http://xinzong.blog.51cto.com/10018904/1749465 一.文件查找工具常用软件 locate: locate命令其实是find -name的另一种写法 ... 
- vs2010安装和使用
			vs2010是之前我跟老师做网站项目时安装的,这次软件工程作业我就用它了,安装过程中的截图就不存在了,我就详细说说它的使用吧. VS2010软件挺大的,下载大概要一个多小时,安装过程大概都是下一步. ... 
- Android 简单计算器源码....
			PS:今天算是闲着没事做了一个小型的计算器...顺便熟悉一下Android的布局,组件,以及时间监听的方法...就当是做了一个小小的练习吧... 顺便去对比了一下别人写的代码...有的使用到了 ... 
- JS魔法堂:阻止元素被选中
			一.前言 在为IE5.5~9polyfill HTML5新特性placeholder时需要阻止元素被选中,因此在网上.书上查阅相关资料,记录在此以便日后查阅. 二.IE10+实现方式──CSS3 .u ... 
- mysql 随机字符的产生方法
			需求:需要插入随机数据,长度为6位,包含数字和大写字母. 一般来说我们会写类似如下的存储过程片断: ) default 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLM ... 
- ok6410 android driver(5)
			Test the android driver by JNI (Java Native Interface), In the third article, we know how to compile ... 
- C#实战Microsoft Messaging Queue(MSMQ)消息队列(干货)
			前言 在使用MSMQ之前,我们需要自行安装消息队列组件!(具体安装方法大家自己搜一下吧) 采用MSMQ带来的好处是:由于是异步通信,无论是发送方还是接收方都不用等待对方返回成功消息,就可以执行余下的代 ... 
