xml 解析
来源:互联网 发布:淘宝详情页文案怎么写 编辑:程序博客网 时间:2024/05/01 23:20
xml加强
1) 讲解jaxp的小练习
2)jaxp进行sax解析
3) Junit单元测试
4) DOM4J基本使用
5) xpath基本使用(更加方便读取xml)
6) schema约束
一、jaxp进行sax解析
dom解析:一次性读到内存,占用内存比较大
sax解析:sax的出现就是为了弥补dom解析的缺陷(内存消耗大),sax解析内存消耗小!!!
读取一部分,解析一部分
sax: Simple Api(for) Xml,来自于开源社区,已经纳入了javase的规范
sax的api在jdk: org.xml.sax.*
sax解析原理:读到xml文档的某部分内容,就会触发对应的事件处理代码。
案例:
1)读取xml指定内容
2)读取xml内容,封装成对象(有难度,必须练习,多理解!!)
sax核心的api:
1)创建SAXParserFactory对象
2)通过SAXParserFactory对象得到SAXParser对象
3)通过SAXParser对象得到XMLReader解析器
4)在XMLReader解析器注册事件监听器(ContentHandlder接口)
5) 使用XMLReader的parse方法进行读取xml文件
ContentHandlder接口常用方法
startDocument(): 文档开始触发
startElement(): 读到元素开始触发
characters(): 读到文本内容触发
endElement(): 读到元素结束触发
endDocument(): 读到文档结束触发
二、Junit单元测试(必须掌握,使用它)
开发步骤:
1)建立一个Junit Test Case的类
2)直接在每个方法中写测试逻辑
3)运行测试方法
如何写Junit的测试方法?
1)方法顶部一定要加上@Test注解
2)方法必须是public修饰,不能有返回值,不能有参数,可以抛出异常
如何查看Junit的测试结果?
看junit导航条
绿色:代表测试通过
红色:代表测试不通过
如何运行junit测试方法?
1)双击方法,右键“junit test”运行!(运行一个方法)
2)双击类,右键“junit test”运行!(运行类中多个方法)
3)双击项目,右键“junit test”运行!(运行项目中多个方法)
如何判断结果?
Assert类:
assertEquals()
assertSame()
assertTrue()
assertFalse()
五个常用注解
@Test
@Before
@After
@BeforeClass
@AfterClass
三、DOM4J基本使用(必须练习)
dom4j:用过jaxp,使用dom4j可以更加简单地操作xml(也是基于dom解析原理的工具)
1)读取xml文件:
//1)创建SAXReader对象
SAXReader reader = new SAXReader();
//2)读取xml文件
Document doc = reader.read("src/exam.xml");
查询:
元素相关的:
element("name")
elements("name");
.......
属性相关的:
attribute("name")
attributeValue("name")
.....
文本相关的:
getText()
2)写出xml文件
//1)创建一个XMLWriter对象
XMLWriter writer = new XMLWriter(
new FileOutputStream("src/exam.xml"));
//2)写出xml文件
writer.write(doc);
//3)关闭流
writer.close();
创建或修改:
addElement("name") 添加元素
addAttribute("name","value");// 添加属性
setText("value") 添加文本
删除:
detach()
getParent().remove(elem);
四)xpath基本使用(很方便)
xpath一句话概括:非常方便的读取xml节点。
遇到了xml的层次结构非常深的时候,使用dom4j获取时很麻烦的!!这时就可以使用xpath!!
核心的方法:
List list = document.selectNodes( "//foo/bar" ); 查询多个节点
Node node = document.selectSingleNode( "//foo/bar/author" ); 查询一个节点
xpath的常用语法:
/ 代表根(从根开始找)
// 所有子节点(不分层次)
作业:改造jaxp版本的练习。改造为dom4j+xpath的版本
五、schema约束(看懂即可)
重点:明白名称空间是什么?用来干什么?
目标:能够看着scheme约束来学有效的xml文件
重点:使用名称空间导入schema文件
html:body
life:body
总结:
1)使用jaxp的sax解析
2)junit单元测试
3)dom4j+xpath
4)schema约束
阅读全文
0 0
- XML解析
- xml解析
- XML解析
- 解析XML
- xml解析
- 解析xml
- 解析xml
- xml解析
- XML解析
- xml解析
- XML解析
- xml解析
- xml解析
- xml解析
- xml解析
- xml解析
- 解析xml
- XML解析
- 斐波那契数列演算
- ORACLE 监听配置(1vs多,多vs1)
- 2、ES6 === destructuring 解构
- Django开发环境搭建
- POJ 1292 Will Indiana Jones Get There? 笔记
- xml 解析
- 中国最强的人工智能学术会议来了
- k-近邻算法 python实现(学习笔记no.1)
- 数组数据类型定义
- PHP反射机制
- 欢迎使用CSDN-markdown编辑器
- 制作开机LOGO就是这么简单!
- php设计模式总结-工厂模式
- APP调起微信支付,JAVA服务端统一下单