一、XML解析的技术
- DOM
- SAX
针对这两种解析技术,官方以及其他组织提供了不同的实现方式
常见的解析方式有如下三种:
a. sun公司提供的jaxp
b. dom4j组织提供的dom4j
c. jdom组织提供的jdom
二、dom VS sax
1 | dom方式解析 |
三、jaxp所依赖的类
jaxp是javase的一部分
jaxp解析器在jdk的javax.xml.parsers包里面
1 | Dom技术所依赖的两个类: |
四、jaxp利用DOM技术解析XML文件实例
现有如下xml文件
1 |
|
操作一:查询xml文件中所有name元素的文本值
1 | private static void selectAll() throws Exception { |
所用到的方法:
1 | DocumentBuilderFactory.newInstance():创建解析器工厂类实例 |
操作二:在第一个p元素中插入一个gender元素,其中gender元素的文本值为f
1 | public static void addGender() throws Exception{ |
所用到的方法:
1 | doc.createElement("标签名"):Document对象调用该方法,返回创建好的标签对象 |
操作三:修改第一个gender元素中的content对象为m
1 | public static void modifyGender() throws Exception{ |
用到的方法:
1 | setTextContent("文本内容"):标签对象调用该方法,修改自己的文本值 |
操作四:删除第一个p1元素下面的gender元素
1 | public static void removeGender() throws Exception{ |
用到的方法:
1 | getParentNode():标签对象调用该方法,获取自己的父标签 |
五、jaxp利用SAX技术解析XML文档实例
- 创建解析器,并执行parse方法的实例
1 | public class TeachSax { |
用到的方法:
1 | SAXParserFactory.newInstance():创建解析类工厂对象 |
- sax解析xml文档操作实例
现有如下xml文件
1 | <?xml version="1.0" encoding="UTF-8"?> |
操作一:输出xml文件中的所有内容
事件处理类如下:
1 | class MyDefaultHandler1 extends DefaultHandler{ |
main方法中调用:
1 | public class TestSax { |
操作二:输出指定索引的name标签文本值
事件处理类如下:
1 | class MyDefaultHandler2 extends DefaultHandler{ |
main方法中调用同上,故省略。
Java新手,若有错误,欢迎指正!