java XML 文件

java XML 文件

1. XML的概念

可扩展标记语言,它可以用来标记数据、定义数据类型,是一种允许用户对自己标记语言进行定义的源语言。XML的简单易于在任何应用程序中读/写数据,这使XML成为数据交互的唯一共同语言。

2. 基本语法
2.1 基本语法格式
  1. XML文件名后缀是.xml
  2. XML第一行是对当前文件的定义声明
  3. XML文件中有且只有一个根标签
  4. 属性值必须使用引号包含
  5. 标签必须正确匹配,正确开始和关闭
  6. XML标签内严格区分大小写
<?xml version="1.0" encoding="utf-8">
<users>
	<user id="1">
		<name>小明</name>
		<age>16</age>
		<gender>male</gender>
	</user>
	<user id="1">
  		<name>小明</name>
 		 <age>16</age>
 		 <gender>male</gender>
	 </user>
</user>
2.2 XML文件组成
  1. 文档声明: <?xml 属性列表 ?> <?xml version = "1.0" encoding = "utf - 8" ?> version : 当前xml文件版本号
    encoding : 编码方式
  2. 标签内容自定义:
    a. 自定义标签允许使用英文字母,数字和其他标点符号。
    b. 不允许使用数组和标点符号开头,只能用英文字母。
    c. 不允许在自定义标签内使用xml标记,XML也不行
    d. 名字不允许出现空格
  3. 属性
    可以给标签一个属性,有时候要求ID属性是唯一的
3. XML解析
3.1 XML解析思路
3.1.1 DOM解析
Document Object Model 文件对象模型
把XML整个文件看做一个Document对象,每一个节点看做一个Element,节点中有Attribute,或者当前节点中存在Text文本内容。
DOM是将整个XML文件读取到计算机内存中,可以进行CRUD操作。
缺点:占用了大量的内存
适用环境:服务器对于XML文件的解析过程。
3.1.2 SAX解析
逐行读取,给予一定的事件操作。
读取一行内容,释放上一行内容,可以有效的节约内存空间
缺点:
	不能对XML文件,进行增删改
适用的环境:
	手机读取解析XML文件时采用的方式
3.2 XML文件解析工具
  1. JAXP: SUN提供的一个基本的解析器,支持DOM和SAX两种解析方式,但是操作很繁琐,不便于程序员开发。
  2. Dom4j::DOM For Java 一款非常优秀的解析器。
  3. Jsoup :基于Java完成的对于HTML解析的工具,因为HTML和XML文件都是标记语言。
  4. PULL:Android手机上集成的XML解析工具,SAX方式解析
Dom4j

涉及方法

  1. SAXReader();
    解析XML文件使用的核心类
    read() --> XML文件Document对象
  2. Document对象中可以使用方法
    Element getRootElement(); 获取当前XML文件的根节点对象
  3. Element对象中可以使用方法
    List elements();
    当前节点下的所有子节点
    List elements(String name);
    当前节点下所有指定名字的子节点
    Attribute attribute(String name);
    根据属性名获取对应的属性对象Attribute
    Attribute节点中可以使用String getValue()来获取对应的节点数据
    String getName();
    获取当前节点的名字
    String getText();
    获取当前节点对应的文本数据
// 当前XML文件的Document对象
Document document = new SAXReader().read(new File("./xml/User.xml"));

// 获取根节点 Root Element
Element rootElement = document.getRootElement();

 // 获取Root Element下子节点
List<Element> elements = rootElement.elements();

Element teacher = rootElement.element("teacher");
// 获取属性节点指定属性值
 System.out.println(teacher.attribute("id").getValue());
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值