XML解析
目录
XML解析方式
一.java中配置文件的三种配置位置以及读取方式
1.读取相同目录下配置文件
2.根目录
3.安全路径 WEB-INF
二.DOM4J
2.1DOM4J简介
2.2DOM4J解析
三.XPath
3.1选取节点
#
XML解析方式
XML的解析方式分为四种:1、DOM解析;2、SAX解析;3、JDOM解析;4、DOM4J解析。其中前两种属于基础方法,是官方提供的平台无关的解析方式;后两种属于扩展方法,它们是在基础的方法上扩展出来的,只适用于java平台。
一.java中配置文件的三种配置位置以及读取方式
1.读取相同目录下配置文件
2.根目录
3.安全路径 WEB-INF
1.读取相同目录下配置文件
package com.liaozhixiang.parse;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
* java中配置文件的三种配置位置以及读取方式
* 1.读取相同目录下配置文件
* 2.根目录
* 3.安全路径 WEB-INF
* @author Administrator
*
*/
public class Demo1 {
public static void main(String[] args) throws Exception {
//1.读写相同目录下配置文件
System.out.println("=====读写相同目录下配置文件====");
InputStream is = Demo1.class.getResourceAsStream("db.properties");
Properties p = new Properties();
p.load(is);
System.out.println(p.getProperty("upass"));
}
}
2.根目录
package com.liaozhixiang.parse;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
* java中配置文件的三种配置位置以及读取方式
* 1.读取相同目录下配置文件
* 2.根目录
* 3.安全路径 WEB-INF
* @author Administrator
*
*/
public class Demo1 {
public static void main(String[] args) throws Exception {
//通过类加载器读取根目录下的配置文件"/db.properties"
InputStream is = Demo1.class.getResourceAsStream("/db.properties");
Properties p = new Properties();
p.load(is);
System.out.println(p.getProperty("upass"));
}
}
3.安全路径 WEB-INF
package com.liaozhixiang.parse;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/WebinfServlet")
public class WebinfServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//访问安全路径的配置文件
InputStream is = request.getServletContext().getResourceAsStream("/WEB-INF/db.properties");
Properties p = new Properties();
p.load(is);
System.out.println(p.getProperty("driver_Class"));
System.out.println(p.getProperty("upass"));
}
}
二.DOM4J
2.1DOM4J简介
DOM4J是 dom4j.org 出品的一个开源 XML 解析包。DOM4J应用于 Java 平台,采用了 Java 集合框架并完全支持 DOM,SAX 和 JAXP。
DOM4J 使用起来非常简单。只要你了解基本的 XML-DOM 模型,就能使用。
Dom:把整个文档作为一个对象。
DOM4J 最大的特色是使用大量的接口。它的主要接口都在org.dom4j里面定义:
Attribute | 定义了 XML 的属性。 |
Branch | 指能够包含子节点的节点。如XML元素(Element)和文档(Docuemnts)定义了一个公共的行为 |
CDATA | 定义了 XML CDATA 区域 |
CharacterData | 是一个标识接口,标识基于字符的节点。如CDATA,Comment, Text. |
Comment | 定义了 XML 注释的行为 |
Document | 定义了XML 文档 |
DocumentType | 定义 XML DOCTYPE 声明 |
Element | 定义XML 元素 |
ElementHandler | 定义了Element 对象的处理器 |
ElementPath | 被 ElementHandler 使用,用于取得当前正在处理的路径层次信息 |
Entity | 定义 XML entity |
Node | 为dom4j中所有的XML节点定义了多态行为 |
NodeFilter | 定义了在dom4j 节点中产生的一个滤镜或谓词的行为(predicate) |
ProcessingInstruction | 定义 XML 处理指令 |
Text | 定义 XML 文本节点 |
Visitor | 用于实现 Visitor模式 |
XPath | 在分析一个字符串后会提供一个 XPath 表达式 |
2.2DOM4J解析
dom4j是目前在xml解析方面是最优秀的(Hibernate、Sun的JAXM也都使用dom4j来解析XML),它合并了许多超出基本 XML 文档表示的功能,包括集成的 XPath 支持、XML Schema 支持以及用于大文档或流化文档的基于事件的处理
特征:
1、JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功能。
2、它使用接口和抽象基本类方法。
3、具有性能优异、灵活性好、功能强大和极端易用的特点。
4、是一个开放源码的文件
2.3DOM4J方法
1.selectNodes 获取某一个节点集合
2.selectSingNodes 获取一个节点
3.attribturValue 获取某一个的属性
4.getText 获取某一个标签的内容
三.XPath
XPath 是一门在 XML 文档中查找信息的语言, 可用来在 XML 文档中对元素和属性进行遍历。XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上。因此,对 XPath 的理解是很多高级 XML 应用的基础。
XPath非常类似对数据库操作的SQL语言,或者说JQuery,它可以方便开发者抓起文档中需要的东西。(dom4j也支持xpath)
3.1选取节点
XPath 使用路径表达式在 XML 文档中选取节点,节点是沿着路径或者 step 来选取的。
常见的路径表达式:
表达式 | 描述 |
nodename | 选取当前节点的所有子节点 |
/ | 从根节点选取 |
// | 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置 |
. | 选取当前节点 |
.. | 选取当前节点的父节点 |
@ | 选取属性 |
还没有评论,来说两句吧...