栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java XML

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java XML

Java XML 1.什么是XML?
XML 是标记语言:可扩展标记语言
2.作用
作用:
  			1.网络间传输数据的格式 json
  			2.用于存储数据
  			3.配置文件使用
3.内容
 1.声明:
   	
 	
 
 	

 	
 	
 	 add to build path
 			.jar mian方法使用
 			.war支持服务器使用
 	-->
 
4.XML读写
XML读写:DOM4j(最常用) SAX(读一部分解析一部分) DOM(将文本的内容全部读到内存)
 * 			读:SAXReader
 * 			read(): 返回值是document对象
 * 			getRootElement():对象是Element
 * 			element():指定节点,对象是element
 * 			elements():全部子节点,返回对象是List
 * 			attributes():返回对象是 Attribute
 * 			getName():得到节点名
 * 			getText():得到节点下的文本内容
 * 			getName():得到Attribute的名
 * 			getValue():得到Attribute的值
 * 			写:XMLWriter
 * 				XMLWriter(文件输出流,OutputFormat.createPrittyPrint())
 * 				write(document)
 * 				documentHelper.createDocuement();
 * 			add():对象是Element
5.案例 5.1读出XML文件内容,按年龄排序

xml文件



	
		张三
		25
		10000
	
	
		李四
		22
		1019
	
	
		王五
		20
		32342
				

解析XML类

import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.document;
import org.dom4j.documentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class XMLRead2 {
	public static void main(String[] args) throws documentException {
		SAXReader reader = new SAXReader();
		File file = new File("test.xml");
		if(!file.exists()){
			return;
		}
		document document = reader.read(file);
		Element root = document.getRootElement();
		List elements = root.elements();
		ArrayList list = new ArrayList<>();
		for(Element e:elements){
//			System.out.println(e.getName());
			Attribute att = e.attribute("id");
			int id =Integer.parseInt(att.getValue());
//			System.out.println(id);
			String name = e.element("name").getTextTrim();
			int age = Integer.parseInt(e.element("age").getTextTrim());
			double salary = Double.parseDouble(e.element("salary").getTextTrim());
			Emp emp = new Emp(id,name,age,salary);
			list.add(emp);
	}
		System.out.println("根据员工年龄排序后的Emp集合:");
		Collections.sort(list,new Comparator() {
			@Override
			public int compare(Emp e1, Emp e2) {
				return e1.getAge() - e2.getAge();
			}
		});
		for(Emp e:list){
			System.out.println(e);
		}
	}
}

class Emp{
	private int id;
	private String name;
	private int age;
	private double salary;
	public Emp(int id, String name, int age, double salary) {
		super();
		this.id = id;
		this.name = name;
		this.age = age;
		this.salary = salary;
	}
	public Emp() {
		super();
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public double getSalary() {
		return salary;
	}
	public void setSalary(double salary) {
		this.salary = salary;
	}
	@Override
	public String toString() {
		return "Emp [id=" + id + ", name=" + name + ", age=" + age + ", salary=" + salary + "]";
	}
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + age;
		result = prime * result + id;
		result = prime * result + ((name == null) ? 0 : name.hashCode());
		long temp;
		temp = Double.doubleToLongBits(salary);
		result = prime * result + (int) (temp ^ (temp >>> 32));
		return result;
	}
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Emp other = (Emp) obj;
		if (age != other.age)
			return false;
		if (id != other.id)
			return false;
		if (name == null) {
			if (other.name != null)
				return false;
		} else if (!name.equals(other.name))
			return false;
		if (Double.doubleToLongBits(salary) != Double.doubleToLongBits(other.salary))
			return false;
		return true;
	}
}

运行:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OX7NFRD0-1634469855802)(C:UsersAdministratorAppDataRoamingTyporatypora-user-imagesimage-20211015165544673.png)]

5.2 将Emp对象写入到XML文件

public class Demo3 {
public static void main(String[] args) {
// XMLWriter
// document
// 通过工具类创建该对象
document doc = documentHelper.createdocument();
// 往doc添加根节点
Element root = doc.addElement(“root”);

	Element person = root.addElement("person");
	Element name = person.addElement("name");
	name.addText("张三");
	person.addElement("age").addText("21");

	Element person1 = root.addElement("person");
	Element name1 = person1.addElement("name");
	name1.addText("李四");
	person1.addElement("age").addText("23");

	Element person2 = root.addElement("person");
	Element name2 = person2.addElement("name");
	name2.addText("王五");
	person2.addElement("age").addText("24");

	File file = new File("test_copy.xml");
	if (!file.exists()) {
		try {
			file.createNewFile();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	try {
		FileOutputStream fos = new FileOutputStream(file);
		XMLWriter writer = new XMLWriter(fos, OutputFormat.createPrettyPrint());
		// 将document对象中内容一次性写出
		writer.write(doc);
		System.out.println("写出完毕!");
		writer.close();
	} catch (Exception e) {
		e.printStackTrace();
	}
}

}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EQfQ1XPL-1634469855804)(C:UsersAdministratorAppDataRoamingTyporatypora-user-imagesimage-20211016100355336.png)]

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/333138.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号