您当前的位置: 首页 > 

import java.lx

暂无认证

  • 3浏览

    0关注

    81博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

XML文件和DOM简单操作

import java.lx 发布时间:2022-08-25 19:21:08 ,浏览量:3

XML简介

XML(EXtensible Markup Language),可扩展标记语言

主要目的是要在不同的机器之间进行通信的数据规范

特点

XML与操作系统、编程语言的开发平台无关

实现不同系统之间的数据交换

作用

数据交互

配置应用程序和网站

Ajax基石

XML文档结构

声明

 

文档元素描述信息(文档结构) 

 

 XML标签

XML文档内容由一系列标签元素组成

元素内容

空元素:   ,,  

属性值用双引号包裹

一个元素可以有多个属性

属性值中不能直接包含 

XML编写注意事项

        1)所有XML元素都必须有结束标签

        2)XML标签对大小写敏感

        3)XML必须正确的嵌套

        4)同级标签以缩进对齐

        5)元素名称可以包含字母、数字或其他的字符

        6)元素名称不能以数字或者标点符号开始

        7)元素名称中不能含空格

编写XML步骤(以MyEclipse为例)

1.点击文件右击,点开New选项,选中Other

2.选择中间XML(Basic Templates),点击next选项

 

3.设置该XML文件名,可以是中文,点击Finish完成

 

 

解析XML技术

常见的三种解析技术

1.DOM

        基于XML文档树结构的解析

        适用于多次访问的XML文档

        特点:比较消耗资源

2.SAX

        基于事件的解析

        适用于大数据量的XML文档

        特点:占用资源少,内存消耗小

3.DOM4J

        非常优秀的Java XML API

        性能优异、功能强大

        开放源代码 

本文简单介绍DOM解析XML,下一篇详细介绍DOM和DOM4j解析XML,对SAX感兴趣的自己去查(能说我也不会吗哈哈)

DOM解析XML

DOM介绍

文档对象模型(Document Object Model) DOM把XML文档映射成一个倒挂的树

常用接口介绍

        DOM解析包:org.w3c.dom

常用接口

常用方法

说明

Document:表示整个 XML 文档

NodeList getElementsByTagName(String Tag)

按文档顺序返回文档中指定标记名称的所有元素集合

Element createElement(String tagName)

创建指定标记名称的元素

Node:该文档树中的单个节点

NodeList getChildNodes()

获取该元素的所有子节点,返回节点集合

Element:XML 文档中的一个元素

String getTagName()

获取元素名称

DOM解析XML文件步骤  

1.创建解析器工厂对象  

2.解析器工厂对象创建解析器对象  

3.解析器对象指定XML文件创建Document对象  

4.以Document对象为起点操作DOM树 

package demo02;

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.xml.sax.SAXException;

public class XmlDocumentDemo01 {

	public static void main(String[] args) {
		/*需求:将XML文件转换成DocumentBuilderFactory
		 * 
		 * 1)创建解析器工厂对象DocumentBuilderFactory
		 * 2)通过解析器工厂对象创建解析器对象
		 * 3)通过解析器对象调用方法将XML文件转换为Document对象
		 * 4)通过Document对象去操作XML文件里的数据
		 * 
		 */
		// 第一步:获取解析器工厂对象
		DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
		
		
		try {
			//第二步:通过解析器工厂对象dbf创建解析器对象
			DocumentBuilder db=dbf.newDocumentBuilder();
			//第三步:通过解析器对象调用方法将XML文件转换成Document对象
			Document document = db.parse("收藏信息.xml");
			System.out.println(document);
		} catch (ParserConfigurationException e) {
			e.printStackTrace();
		} catch (SAXException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		

	}

}

定义一个方法实现获取Document对象操作 

package demo02;

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.xml.sax.SAXException;

public class XmlDocumentDemo02 {
	Document document;
	//定义一个方法实现获取Document对象操作
	public Document getDocument(String url){
		
		try {
			//创建解析器工厂对象
			DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
			//通过解析器工厂独享创建解析器对象
			DocumentBuilder db=dbf.newDocumentBuilder();
			document=db.parse(url);
		} catch (ParserConfigurationException e) {
			e.printStackTrace();
		} catch (SAXException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return document;
	}

}

 XML案例:



	
		
		
		
	
	
		
	

关注
打赏
1663829786
查看更多评论
立即登录/注册

微信扫码登录

0.2616s