Java—xml解析

1.xml:可扩展性标记语言

1)概念:可扩展:标签名可以自定义

命名规范:不能纯数字(同Java),严格区分大小写

2)功能:用作配置文件和用作网络中的数据传输的载体:xml和Json

    Json:一般用于移动端,体积小

    xml:一般用于移动端

3)语法:新建文本文件,后缀名为.xml

组成:文档声明:<?xml version="1.0" encoding="UTF-8"?>

根标签:有且只有一个根标签

2.解析xml

<1>:解析思想1):Dom:文档对象类型.将文档的各个组成部分抽取为一个对象

element:标签对象   attribute:属性对象   text:文本属性   comment:注释属性   Node:节点属性    Document:文本对象

解析:将文档一次性加载进入内存,然后将文档各个组成抽取为对象

优点:可对文档进行增删改查---缺点:消耗内存,使用与PC端

解析思想2):SAX解析:基于事件逐行进行解析,一次读取一行,释放一行

优点:不占内存,适用于移动端---缺点:只能查,不可以增删改

<2>常见的xml解析器:Dom4J:第三方jar包,支持Dom思想

Pull解析器:第三方jar包,支持Sax思想

<3>Dom4J解析的步骤

1.导入Dem4Jjar包

2.写student.xml文件

3.创建解析器对象    Reader reader=new  SAXReader(new FileInputStream("student.xml"));

4.获取节点对象

 SAXReader reader = new SAXReader();
 Document doc  = reader.read(new FileInputStream("student.xml"));

5.获取标签对象及其文本值

//读取文件
	SAXReader reader = new SAXReader();
	Document doc  = reader.read(new FileInputStream("sadc.xml"));
	//1.获取所有的节点
	Iterator<Node> nodes = doc.nodeIterator();
	while(nodes.hasNext()){
		Node next = nodes.next();
		System.out.println(next.getName());
	}
	//获取根节点
	Element root  = doc.getRootElement();
	//获取根节点的子标签
	root.element("标签名");
	//获取所有的子标签
	//方式1.List list = root.elements();
	//方式2:Iterator iteraor = root.elementIterator();
	//2.获取所有的属性对象
	Element stu = root.element("student");
	Attribute id = stu.attribute("属性名id");
	//获取属性的值
	String idValue = root.element("student").attributeValue("属性名id");
	//通过迭代的方式获取属性对象
	Iterator iterator = root.element("student").attributeIterator();
	//3.获取标签下的文本
	//方式1:此标签对象+getText()方法
	String name = root.element("student").element("name").getText();
	//方式2:上层标签+elementText()方法
	String name2 = root.element("student").elementText("name");

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值