XML入门

DOM文档对象模型

DOM(Domcunent Object Model) 定义了访问和操作XML文档的标准方法,DOM把XML文档作为树结构来查看,能够通过来读写所有元素。
作为树来看

Dom4j

  • Dom4j是一个易用的、开源的库,用于解析XML。他应用于Java平台,具有性能优异、功能强大和极其易使用的特点。
  • Dom4j将XML视为Document对象
  • XML标签被Dom4j定义为Element对象

Dom4j-2.1.3下载!

链接:https://pan.baidu.com/s/1-xQsVwi1w1okuaU8_Fn-tQ
提取码:519g
复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V4的分享

开心呢!花了一小时!

Dom4j读取和遍历XML

  • SAXReader类是读取XML文件的核心类,用于将XML解析后以树的形式保存在内存中。
  • getRootElement()获取XML文档的根节点,即hr标签
  • elements()用于获取指定的标签集合
  • element()用于获取唯一的子节点对象
  • getText()用于获取标签的文本值
  • elementText用于获取子节点的文本值
  • attribute()用于获取属性值
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 HrReader {
	public  void readxml() {
		String file = "D:/eclipseworkspace/xml/src/hr.xml";
		
	//SAXReader类是读取XML文件的核心类,用于将XML解析后以树的形式保存在内存中
		SAXReader reader = new SAXReader();
		try {
			Document document = reader.read(file);
			//getRootElement()获取XML文档的根节点,即hr标签
			Element root = document.getRootElement();
			//elements()用于获取指定的标签集合
			List<Element> employees = root.elements("employee"); 
			for(Element employee:employees) {
				//element()用于获取唯一的子节点对象
				Element name = employee.element("name");
				//getText()用于获取标签的文本值
				String empname = name.getText();
				System.out.println(empname);
				
				//elementText用于获取子节点的文本值
				System.out.println(employee.elementText("age"));
				System.out.println(employee.elementText("salary"));
				Element department = employee.element("department");
				System.out.println(department.element("dname").getText());
				System.out.println(department.element("address").getText());
				//attribute()用于获取属性值
				Attribute att = employee.attribute("no");
				System.out.println(att.getText());
			}
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public static void main(String[] args) {
		//对HrReader对象进行实例化
		HrReader reader = new HrReader();
		reader.readxml();
	}
}

Dom4j更新XML

添加一个王五employee节点

	public void writexml() {
		String file = "D:/eclipseworkspace/xml/src/hr.xml";
		SAXReader reader = new SAXReader();
		try {
			Document document = reader.read(file);
			Element root = document.getRootElement();
			Element employee = root.addElement("employee");
			employee.addAttribute("no", "3311");
			Element name = employee.addElement("name");
			name.setText("王五");
			employee.addElement("age").setText("36");
			employee.addElement("salary").setText("3600");
			Element department = employee.addElement("department");
			department.addElement("dname").setText("人事部");
			department.addElement("address").setText("xx大厦-B105");
			Writer writer = new OutputStreamWriter(new FileOutputStream(file),"UTF-8");
			document.write(writer);
			writer.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		HrWriter hrWriter = new HrWriter();
		hrWriter.writexml();
		
	}

}

XPath路径表达式

  • XPath路径表达式是XML中查找数据的语言;
  • 掌握XPath可以极大地提高在提取数据时的开发效率;
  • 学习XPath的本质就是掌握各种形式表达式的使用技巧。
表达式描 述
nodename选取此节点的所有子节点
/从根节点选取
//从匹配选择的当前节点选择文档中的节点,而不考虑他们的位置
.选取当前节点
选取当前节点的父节点
@选取属性

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值