java xml解析_XMl的理解以及SAX解析流程

8af4387c07a8d1e57672da692306b258.png

XML一般用来存储数据作为数据存储的一种格式

XML还可以用于作为软件的参数配置

11c69a3843fdc97a26edcdd33671895d.png

这里讲下如何理解java中的相对路径

在java中如何获取当前的路径,当我们知道当前的路径了以后我们就可以使用绝对路径了

0cc0ad3ee98d495fc620ffdae6c9c8bf.png

cb9e798aa9cfe3cad57f958e22130cf1.png

8e52b9e871d54bdf9ab54d2847ea9159.png
package cn.jd.server.basic;

import java.io.IOException;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

/*
 * 熟悉SAX解析流程
 */
public class XmlTest01 {
		public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
			System.out.println();
			//SAX解析
			//1.获得解析工厂
			SAXParserFactory factory=SAXParserFactory.newInstance();
			//2.从解析工厂获得解析器
			SAXParser  parse=factory.newSAXParser();  
			//3.编写处理器
			//4.加载文档Document注册处理器
			PHandler  handler=new PHandler();
			//5.解析   用当前线程的类加载器拿到p.xml的资源
			parse.parse(Thread.currentThread().getContextClassLoader()
					.getResourceAsStream("cn/jd/server/basic/p.xml"),handler);
		}
}
class PHandler  extends DefaultHandler{
	@Override
	public void startDocument() throws SAXException {
		System.out.println("解析文档开始");
	}
	@Override
	public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
		System.out.println(qName+"-->解析开始");
	}
	@Override
	public void characters(char[] ch, int start, int length) throws SAXException {
		String contents=new String(ch,start,length).trim();
		if(contents.length()>0) {
			System.out.println("内容为:"+contents);
		}else {
			System.out.println("空内容");
		}
	}
	@Override
	public void endElement(String uri, String localName, String qName) throws SAXException {
		System.out.println(qName+"-->解析结束");
	}
	@Override
	public void endDocument() throws SAXException {
		System.out.println("解析文档结束");
	}
}


<?xml version="1.0"   encoding="utf-8"?>
<persons>
	<person>
	<name>至尊宝</name>
	<age>9000</age>
	</person>
	<person>
	<name>白晶晶</name>
	<age>7000</age>
	</person>
</persons>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值