XML概念
可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。
在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。早在1998年,W3C就发布了XML1.0规范,使用它来简化Internet的文档信息传输。
解析XML的相关工作
1.引入相关的jar包
dom4j-1.6.1.jar
xml-apis-1.0.b2.jar
2.引入要解析的XML文件
文件名为emplist.xml
<?xml version="1.0" encoding="UTF-8"?>
<list>
<emp id="1">
<name>鸣人</name>
<age>27</age>
<gender>男</gender>
<salary>70020</salary>
</emp>
<emp id="2">
<name>小樱</name>
<age>25</age>
<gender>女</gender>
<salary>60000</salary>
</emp>
<emp id="3">
<name>雏田</name>
<age>24</age>
<gender>女</gender>
<salary>50000</salary>
</emp>
<emp id="4">
<name>博人</name>
<age>13</age>
<gender>男</gender>
<salary>100</salary>
</emp>
</list>
解析XML文件的源代码
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
* 使用dom解析xml文档
* @author soft01
*
*/
public class ParseXmlDemo {
public static void main(String[] args) {
/*
* 将emplist.xml文档中所有员工信息解析出来
* 存入到List集合。
* 每个员工信息以一个Emp实例形式保存
*/
List<Emp> list = new ArrayList<Emp>();
/*
* 使用dom4j解析xml文档的大致流程
* 1:创建SAXReader
* 2:使用SAXReader读取xml文档,并生成对应的
* Document对象,该对象保存了该文档的所有数据
* 及结构。
* 这一步也是DOM解析耗时耗资源的地方。
* 3:通过Document对象获取根元素
* 4:按照XML文档的结构从根元素开始逐级获取子元素
* 以达到遍历XML文档数据的目的
*/
try {
//1
SAXReader reader = new SAXReader();
//2
Document document = reader.read(new File("emplist.xml"));
// reader.read(new FileInputStream("emplist.xml")); 第二种方式
/*
* 3 Document提供了获取元素的方法
* Element getRootElement()
*
* Element的每一个实例用于表示xml文档中的
* 一个元素(一对标签),其提供了用于获取该元素
* 相关信息的一系列方法:
*
* String getName()
* 获取当前标签的名字
*
* String getText()
* 获取当前标签中间的文本
*
* Element element(String name)
* 获取当前标签中指定名字的子标签
*
* List elements()
* 获取当前标签中的所有子标签
*
* List elements(String name)
* 获取当前标签下所有指定名字的同名子标签
*
* Attribute attribute(String name)
* 获取指定名字的属性,Attribute的每个
* 实例用于表示一个标签中的一个属性,可以
* 通过它获取该属性的名字与对应的属性值。
*
* String attributeValue(String name)
* 可以直接获取当前标签中指定名字的属性所
* 对应的值
*/
Element root = document.getRootElement();
/*
* 获取根元素<list>中的所有名为emp的子元素
*/
List<Element> empList = root.elements("emp");
/*
* 遍历每一个<emp>标签,获取员工信息
*/
for(Element empEle : empList){
//获取员工名字
//1.获取name标签
Element nameEle = empEle.element("name");
//2.获取name标签中间的文本
String name = nameEle.getTextTrim();
//获取员工年龄
Element ageEle = empEle.element("age");
int age = Integer.parseInt(ageEle.getTextTrim());
//获取员工性别
String gender = empEle.elementText("gender");
//获取员工工资
int salary = Integer.parseInt(empEle.elementText("salary"));
//获取员工id
int id = Integer.parseInt(empEle.attributeValue("id"));
list.add(new Emp(id, name, age, gender, salary));
}//遍历<emp>标签结束
System.out.println("解析完毕");
for(Emp emp: list) {
System.out.println(emp);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
总结
XML 应用于 web 开发的许多方面,常用于简化数据的存储和共享。
1.XML表述底层数据,如配置文件;
2.利用XML为文档添加元数据;
3.XML技术已经广泛应用于e-Learning应用系统的开发,大多数的商用e-Learning平台都支持XML标准。一些主要的网络设备制造商,如CISCO、JUNIPER等,生产的网络设备也已提供了对XML的支持,以利于今后基于XML的网络管理。
转载请注明出处,谢谢~ --------------------- 本文来自 Slick_kw的优快云 博客 ,全文地址请点击:https://blog.youkuaiyun.com/qq_34399639/article/details/82831121