XML 基础

XML

简介

xml: 可扩展标记语言。
	特性:1.xml具有平台无关性,是一门独立的标记语言。
		  2.xml具有自我描述性。
	用途:1:网络数据传输。
		  2.数据存储。
		  3.配置文件。

XML 语法格式 *

    xml文档通常存储在.xml文件中。

XML文档声明

<? xml version ="1.0" endcoding ="UTF-8" ?>

标记 (标记、标签,节点)

		xml文档由一个个标记组成
		语法:开始标记(开放标记):<标记名称>
				  结束标记 (闭合标记):</标记名称>
				  标记名称:自定义名称,命名规则参考java的标记符
				  标记内容:开始标记与结束标记之间的内容

一个XML文档中,必须有且只有一个跟标记

<names>
	<name>lisi</name>
	<name>zhangsan</name>
</names>

标签可以镶嵌,但是不允许交叉

标签的层级称呼

标记名称 允许重复

标记除了开始和结束,还有属性

  • 标记的属性 ,在标记开始时描述,有属性名和属性值组成。
<persons>
	<person id="1001" age="18">
			<name>张三</name>
	</person>
</persons>

注释:

  • 注释开始 <!–
  • 注释结束 -->

面试

java有几种xml解析方式?分别是什么?有啥优缺点?

SAX解析

sax解析器 逐行读取xml文件解析,每当解析到一个标签的开始、结束、内容时…触发事件。

  • 优点 :读取大文件节省时间
  • 缺点:
    1.因为逐行解析,当解析到第n行,第n-1行已经被释放,无法再次操作。
    2.因为驱动机制,我们无法得知事件发生时的元素层次,只能添加标记来感知。
    3.无法修改内容。
DOM 解析

直接将整个文档,加载到内存,在内层中建立文档树模型,程序员可以通过操作文档树,来完成数据获取,修改,删除

  • 优点:文档在内存中加载,可以任意的读取,修改,删除、
  • 缺点:文档在内存中,占用大量的内存,无法解析大文件。
JDOM解析
  • 与DOM解析一致。
DOM4J解析
  • 与DOM解析一致。

DOM4J解析 XML

步骤:
	1.引入jar文件 dom4j.jar
	2.创建一个指向XML文件的输入流
		FileInputStream fis = new FileInputStream("xml文件地址");
	3.创建一个XML读取工具对象
		SAXReader sr = new SAXReader();
	4.使用读取工具对象,读取xml文档的输入流,得到文档对象
		Document doc = sr.read(fis);
	5.通过文档对象,获取xml文档中的根元素对象
		Element root = doc.getRootElement();

文档对象

 	指加载到内存的整个xml文档
    常用方法:
		1.通过文档对象,获取xml文档中的根元素对象
			Element root = doc.getRootElement();
		2.添加根节点
			Element root = doc.addElement("根节点名称"); 		    

常用方法

1.获取节点名称   String getName();
2.获取几点内容   String getText();
3.设置节点内容   String setText();
4.根据子节点名称获取匹配名称的第一个子节点对象
	Element element(String 子节点名称);
5.获取所有的子节点对象
	List<Element> element();
6.获取节点的属性值
	String attributevalue(String 属性名称);
7.获取子节点的内容
	String elementText(String 子节点名称);
8.添加子节点
	String addElement(String 子节点名称);
9.添加属性
	void addAttribute(String 属性名,String属性值);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值