应用DOM方式解析XML

package domTest;

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 {

public static void main(String[] args) {

// TODO Auto-generated method stub

//创建一个DocumentBuilderFactory的对象

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

try {

//创建一个DocumentBuilder对象

DocumentBuilder db = dbf.newDocumentBuilder();

//通过DocumentBuilder对象的parse(String fileName)方法解析XML文件

//利用parse()方法,加载books.xml文件到当前项目下

Document document= db.parse("books.xml");

//获取所有books节点的集合

NodeList booklist = document.getElementsByTagName("book");

//通过booklist的getlength方法,获取booklist方法

System.out.println("一共有 " + booklist.getLength() + "本书!");

//便利每一个book节点

for(int i = 0; i < booklist.getLength(); i++){

System.out.println("=====================开始遍历第" + (i + 1) + "本书的内容=============================");

//通过item(i)方法获取一个book节点,nodelist的索引值从零开始

Node book= booklist.item(i);

//获取book节点所有属性的集合

NamedNodeMap att = book.getAttributes();

System.out.println("第" + (i + 1) + "本书共有" + att.getLength() + "个属性!");

//遍历book的属性

for(int j = 0; j < att.getLength(); j++){

//通过att的item的方法,获取book节点的某一个属性

Node attr= att.item(j);

//获取属性名

System.out.print("属性名: " + attr.getNodeName());

//获取属性值

System.out.println("---属性值: " + attr.getNodeValue());

}

//解析book节点的子节点

NodeList childNodes = book.getChildNodes();

//遍历childNodes获取的每个节点名和节点值

System.out.println("第 "+(i + 1)+ "本书有: " + childNodes.getLength() + "子节点");

for(int k = 0; k < childNodes.getLength(); k++){

if(childNodes.item(k).getNodeType() == Node.ELEMENT_NODE){

//获取element类型节点的节点名

System.out.print("第" + (k + 1) +"个节点的节点名是: "+childNodes.item(k).getNodeName());

//获取element类型节点的值

System.out.println(" --节点值是: " + childNodes.item(k).getTextContent());

//或者使用System.out.println(" --节点值是: " + childNodes.item(k).getFirstChild().getNodeValue());

}

}

System.out.println("=====================结束遍历第" + (i + 1) + "本书的内容=============================");

}

} 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();

}

}

}

时间: 2024-10-22 16:50:33

应用DOM方式解析XML的相关文章

XML引入,DOM 方式解析XML 原理,SAX 方式解析XML

XML 简介 Xml(eXtensible Markup Language) 即可扩展标记语言.提供了一套跨平台.跨网络.跨程序的语言的数据描述方式,使用XML 可以方便地实现数据交换.系统配置.内容管理等常见功能. 元素VS 节点 节点包括元素节点.属性节点.文本节点:元素一定是节点,但是节点不一定是元素: <?xml version="1.0" encoding="UTF-8"?> <emp> <empName empNo=&quo

通过Dom方式解析xml文件

此项目通过简单的天气情况显示来实现xml文件的解析 1. 搭建环境 1)创建如下图的包.类及文件 2)布局文件的大概样式如下图所示,用到四个TextView控件和一个RadioGroup控件 3)china.xml文件的内容如下 <?xml version="1.0" encoding="UTF-8"?> <china dn="day"> <city cityname="南京" pyName=&q

DOM方式解析xml文件查看天气

1.步骤: ①创建文档解析器的工厂对象 ②得到文档解析器对象 ③获取输入流对象 ④通过解析器的parse方法解析is对象 转换成Document对象 ⑤返回的是文档的根节点 ⑥判断是否有孩子节点进行获取子节点转换成元素节点得到属性节点 ⑦得到具体的某个属性节点 2.解析元素节点.属性节点.文本节点: 3.界面搭建 界面搭建的相关代码: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

QT开发(四十二)——DOM方式解析XML

QT开发(四十二)--DOM方式解析XML 一.DOM简介 1.DOM简介 DOM是Document Object Model的简写,即XML文档对象模型,是由W3C提出的一种处理XML文档的标准接口. DOM 一次性读入整个XML文档,在内存中构造为一棵树(DOM树)将XML文件表示成一棵树,便于随机访问其中的节点,但消耗内存相对多一些.能够在这棵树上进行导航,比如移动到下一节点或者返回上一节点,也可以对这棵树进行修改,或者是直接将这颗树保存为硬盘上的一个 XML 文件. 2.XML DOM节

在iOS 开发中用GDataXML(DOM方式)解析xml文件

因为GDataXML的内部实现是通过DOM方式解析的,而在iOS 开发中用DOM方式解析xml文件,这个时候我们需要开启DOM,因为ios 开发中是不会自动开启的,只有在mac 开发中才自动开启的.我们需要做如下配置: 当配置玩这个操作之后,再次进行编译的时候,系统还是报错,是因为我们还需要进行如下操作:

XML —— DOM方式解析XML

1. DOM 方式解析 XML 原理 基于 DOM(Document Object Model,文档对象模型)解析方式,是把整个 XML 文档加载到内存,转化成 DOM 树,因此应用程序可以随机的访问 DOM 树的任何数据: 优点:灵活性强,速度快: 缺点:消耗资源比较多: 2. 元素 VS 节点 ( 节点包含元素 ) 节点包括元素节点.属性节点.文本节点 <!-- students.xml --><?xml version="1.0" encoding="

Java DOM方式解析XML

1 //创建一个DocumentBuilderFactory工厂实例 2 DocumentBuilderFactory DBF=DocumentBuilderFactory.newInstance(); 3 //通过工厂实例对象创建一个DocumentBuilder实例 4 DocumentBuilder DB=DBF.newDocumentBuilder(); 5 //解析URL指定的XML文件,并保存到D变量 6 Document D=DB.parse("URL路径"); 7 //

DOM 方式解析 XML

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); try { DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse("tree.xml"); //根据标签名获取节点集合 NodeList nodeList = doc.getElementsByTagName("item&

dom方式解析xml文件的步骤