什么是XML
- XML(EXtensible Markup Language) 指的是可扩展标记语言。
- XML的设计宗旨是传输数据,而并非是显示数据。
- XML标签系统没有预定义,需要自己定义。
- XML被设计为具有自我描述性。
XML和Html的区别
- XML被设计为传输数据和存储数据,其焦点是数据的内容。
- HTML被设计为数据的显示,其焦点是数据的如何显示和数据的外观。
XML的作用
常见的XML解析方式
- SAX
- DOM
- PULL
- DOM4J
XML树结构
举例:读取和写入XML中的学生信息
1、student.xml
<?xml version="1.0" encoding="UTF-8"?>
<students>
<student id="1">
<sname>张三</sname>
<sage>12</sage>
</student>
</students>
2、读取XML中的学生信息,并显示在控制台上
public static void main(String[] args) throws DocumentException {
//获取SAXReader实例
SAXReader reader = new SAXReader();
//获取xml文件
File file = new File("xml/students.xml");
//获取文档对象
Document doc = reader.read(file);
//获取根节点
Element root = doc.getRootElement();
//获取全部子节点
List<Element> list = root.elements();
//遍历所有的子节点
for (Element ele : list) {
String id = ele.attributeValue("id");
String sname = ele.elementTextTrim("sname");
String sage = ele.elementTextTrim("sage");
System.out.println(id+","+sname+","+sage);
}
}
3、写入学生信息到XML文件中
public static void main(String[] args) {
//通过documentHelper创建一个document对象
Document doc = DocumentHelper.createDocument();
//通过documentHelper创建一个根节点
Element root = DocumentHelper.createElement("students");
//将根节点添加到文档对象doc中
doc.setRootElement(root);
//根据用户需求创建不同的子节点
Element ele = root.addElement("student");
//给子节点设置属性
ele.addAttribute("id", "1");
//给student节点添加子节点
Element sname = ele.addElement("sname");
sname.setText("张三");
Element sage = ele.addElement("sage");
sage.setText("12");
//将文档对象写入xml文件中
File file = new File("xml/students.xml");
FileOutputStream out = null;
XMLWriter writer = null;
//文档格式化
OutputFormat format = null;
//第一个参数代表缩进,第二个参数代表是否换行
format = new OutputFormat("\t", true);
try {
out = new FileOutputStream(file);
writer = new XMLWriter(out, format);
writer.write(doc);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
writer.close();
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}