XML的生成和解析

本文介绍了XML(可扩展标记语言)的基本概念、作用及如何编写XML文件。内容包括XML的自定义标记、数据存储功能以及作为数据交换格式的角色。接着,文章详细讲解了XML文件的生成,如DOM和第三方库dom4j、jdom的使用,以及通过拼接字符串的方式。最后,对比分析了DOM和SAX两种解析方法的优缺点,强调DOM解析的结构清晰但资源消耗大,而SAX解析高效但需要基于事件处理。
摘要由CSDN通过智能技术生成

1.什么是XML?

        XML就是可扩展标记语言。HTML是超文本标记语言。

        标记语言就是通过一个一个的标记来组织数据的一种语法格式。

        与HTML超文本标记语言比较的话XML这种可扩展标记语言它的标记是自己定义的。

        XML中自己定义的标记表示:

例如:<标记名称  属性1="属性值" 属性2="属性值"...>具体数据</标记名称>

         <标记名称>---开始标记

        <标记名称  属性1="属性值" 属性2="属性值"...>---开始标记

        </标记名称>---结束标记

2.XML的作用是什么?

        存储数据的一种语法格式

        它还可以是一种数据报交换格式。

3.如何编写XML文件?

        我们现在需要将一个java对象组织成一个xml格式的数据,我们开看一下具体的做法。 

public class Student{
    private int stuid;
    private String stuname;
    private int stuage;
    private String stuaddress;


    getXXX()/set()XXX
}


Student student=new Student();
student.setStuid(1001);
student.setStuname("zhangsan");
student.setStuage(23);
student.setStuaddress("西安");

XML类型的数据/文件【student.xml】

<?xml version="1.0"  encoding="utf-8"?>    ---xml类型数据/文件的标识
<students>                                 ---xml的根元素【必不可少】
<student stuid="1001">                    ---xml的子元素,stuid="1001"就是当前子元素的一个属性
<stuname>zhangsan</stuname>                ---xml元素的子子元素,zhangsan具体数据值
<stuage>23</stuage>                        ---xml元素的子子元素,23具体数据值
<stuaddress>西安</stuaddress>              ---xml元素的子子元素,西安具体数据值
</student>   
</students>  

注意:1.<?xml version="1.0"  encoding="utf-8"?>不能少

           2.根元素只有一个,必不可少

           3.具体的数据值都是由于子元素/子子【孙子】元素保存

           4.如果是一个文件,那么文件的后缀名使用".xml"

我们现在需要将一个保存有java对象的集合/数组组织成一个xml格式的数据,我们来看一下具体的做法

	public  class  Student{
		private  int  stuid;
		private  String  stuname;
		private  int  stuage;
		private  String  stuaddress;
		.....
		getXXX()/setXXX()
	
	}
	Student  student1=new Student();
	student1.setStuid(1001);
	student1.setStuname("zhangsan");
	student1.setStuage(23);
	student1.setStuaddress("西安");
	Student  student2=new Student();
	student2.setStuid(1002);
	student2.setStuname("lisi");
	student2.setStuage(24);
	student2.setStuaddress("北京");
	Student  student3=new Student();
	student3.setStuid(1003);
	student3.setStuname("wangwu");
	student3.setStuage(25);
	student3.setStuaddress("上海");
	List<Student>  studentlist=new ArrayList<Student>();
	studentlist.add(student1);
	studentlist.add(student2);
	studentlist.add(student3);

将上面的studentlist组织成xml数据/文件【student.xml】

<?xml version="1.0"  encoding="utf-8"?>
	<studentlist>
		<student stuid="1001">
			<stuname>zhangsan</stuname>
			<stuage>23</stuage>
			<stuaddress>西安</stuaddress>
		</student>
		<student stuid="1002">
			<stuname>lisi</stuname>
			<stuage>24</stuage>
			<stuaddress>北京</stuaddress>
		</student>
		<student stuid="1003">
			<stuname>wangwu</stuname>
			<stuage>25</stuage>
			<stuaddress>上海</stuaddress>
		</student>
	</studentlist>

注意:1.标记都是自己定义,没有固定的具体标记

          2.子元素、子子元素是可以有多个的。

4.XML文件的生成

        1.Dom生成

        java默认的dom生成方式【jdk提供的java类】

例如:

package com.test1;

public class Student {
	private int stuid;
	private String stuname;
	private int stuage;
	private String stuaddress;
	public int getStuid() {
		return stuid;
	}
	public void setStuid(int stuid) {
		this.stuid = stuid;
	}
	public String getStuname() {
		return stuname;
	}
	public void setStuname(String stuname) {
		this.stuname = stuname;
	}
	public int getStuage() {
		return stuage;
	}
	public void setStuage(int stuage) {
		this.stuage = stuage;
	}
	public String getStuaddress() {
		return stuaddress;
	}
	public void setStuaddress(String stuaddress) {
		this.stuaddress = stuaddress;
	}
	
}
package com.test1;

import java.io.File;
import jav
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值