博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WebServer Project-02-XML解析
阅读量:4363 次
发布时间:2019-06-07

本文共 5098 字,大约阅读时间需要 16 分钟。

XML:Extensible Markup Language,可扩展标记语言,左卫门数据的一种存储格式或用于存储软件的参数,程序解析此配置文件,就可以达到不修改代码就能更改程序的目的。

1184092-20190822212928358-1230116648.png

至尊宝
>
9000
白晶晶
>
2000
package server.study;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;import java.io.IOException;import javax.xml.parsers.ParserConfigurationException;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;/** * 熟悉SAX解析流程 * Created by 16114 on 2019/8/22. * */public class XmlTest01 {    public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {        //SAX解析        //1.获取解析工厂        SAXParserFactory factory = SAXParserFactory.newInstance();        //2.从解析工厂获取解析器        SAXParser parser = factory.newSAXParser();        //3.编写处理器        //4.加载文档Document注册处理器        PHandler handler = new PHandler();        //5.解析        parser.parse(Thread.currentThread().getContextClassLoader()                        .getResourceAsStream("server/study/p.xml") ,handler);    }}class PHandler extends DefaultHandler{    @Override    public void startDocument() throws SAXException {        System.out.println("---解析文档开始---");    }    @Override    public void endDocument() throws SAXException {        System.out.println("---解析文档结束---");    }    @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 startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {       // super.startElement(uri, localName, qName, attributes);        System.out.println(qName+ "--->解析开始 ");    }    @Override    public void endElement(String uri, String localName, String qName) throws SAXException {        //super.endElement(uri, localName, qName);        System.out.println(qName+ "--->解析结束");    }}
package server.study;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;import java.io.IOException;import java.util.ArrayList;import java.util.List;import javax.xml.parsers.ParserConfigurationException;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;/** * 熟悉SAX解析流程 * Created by 16114 on 2019/8/22. * */public class XmlTest02 {    public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {        //SAX解析        //1.获取解析工厂        SAXParserFactory factory = SAXParserFactory.newInstance();        //2.从解析工厂获取解析器        SAXParser parser = factory.newSAXParser();        //3.编写处理器        //4.加载文档Document注册处理器        PersonHandler handler = new PersonHandler();        //5.解析        parser.parse(Thread.currentThread().getContextClassLoader()                .getResourceAsStream("server/study/p.xml") ,handler);        //获取数据        List
persons = handler.getPersons(); for (Person p:persons ) { System.out.println(p.getName()+"-->"+p.getAge()); } }}class PersonHandler extends DefaultHandler{ private List
persons; private Person person; private String tag; //存储操作标签 public List
getPersons() { return persons; } @Override public void startDocument() throws SAXException { persons = new ArrayList
(); //System.out.println("---解析文档开始---"); } @Override public void endDocument() throws SAXException { //System.out.println("---解析文档结束---"); } @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { // super.startElement(uri, localName, qName, attributes); System.out.println(qName+ "--->解析开始 "); if (null != qName){ tag = qName; //存储 if (tag.equals("person")){ person = new Person(); } } } @Override public void characters(char[] ch, int start, int length) throws SAXException { String contents = new String(ch,start,length).trim(); if (null != tag) { //处理了空 if (tag.equals("name")) { person.setName(contents); } else if (tag.equals("age")) { if (contents.length() > 0) { person.setAge(Integer.valueOf(contents)); } } } } @Override public void endElement(String uri, String localName, String qName) throws SAXException { //super.endElement(uri, localName, qName); System.out.println(qName+ "--->解析结束"); if (null != qName) { if (qName.equals("person")) { persons.add(person); } } tag = null; }}

转载于:https://www.cnblogs.com/Roni-i/p/11397790.html

你可能感兴趣的文章
Spring boot——logback 基础使用篇(一)
查看>>
linux环境部署 (jdk/tomcat/mysql/redis)
查看>>
多线程
查看>>
服务器工作原理
查看>>
hdu1588---Gauss Fibonacci(矩阵,线性复发)
查看>>
ORACLE分页查询
查看>>
[leetcode] 456. 132 Pattern (Medium)
查看>>
java中的SHA单向加密
查看>>
python获取命令行参数的代码
查看>>
使用SharedPreferences进行数据存储
查看>>
莱芜义工网-莱芜义工论坛-莱芜义工网址导航-莱芜义工协会
查看>>
缅甸150万人濒临疾病和饥饿威胁
查看>>
Visual Studio 2017 设置透明背景图
查看>>
PHP的几种排序方法
查看>>
H5项目开发分享——用Canvas合成文字
查看>>
java发送邮件 发送带附件的邮件
查看>>
Linux tar 解压缩命令
查看>>
浅谈递归算法
查看>>
PDM只显示表名称不显示列表名称
查看>>
转 Java输入输出流详解(非常详尽)
查看>>