XML解析

我会带着你远行 2023-10-12 18:13 127阅读 0赞

目录

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.读取相同目录下配置文件

  1. package com.liaozhixiang.parse;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.util.Properties;
  5. /**
  6. * java中配置文件的三种配置位置以及读取方式
  7. * 1.读取相同目录下配置文件
  8. * 2.根目录
  9. * 3.安全路径 WEB-INF
  10. * @author Administrator
  11. *
  12. */
  13. public class Demo1 {
  14. public static void main(String[] args) throws Exception {
  15. //1.读写相同目录下配置文件
  16. System.out.println("=====读写相同目录下配置文件====");
  17. InputStream is = Demo1.class.getResourceAsStream("db.properties");
  18. Properties p = new Properties();
  19. p.load(is);
  20. System.out.println(p.getProperty("upass"));
  21. }
  22. }

2.根目录

  1. package com.liaozhixiang.parse;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.util.Properties;
  5. /**
  6. * java中配置文件的三种配置位置以及读取方式
  7. * 1.读取相同目录下配置文件
  8. * 2.根目录
  9. * 3.安全路径 WEB-INF
  10. * @author Administrator
  11. *
  12. */
  13. public class Demo1 {
  14. public static void main(String[] args) throws Exception {
  15. //通过类加载器读取根目录下的配置文件"/db.properties"
  16. InputStream is = Demo1.class.getResourceAsStream("/db.properties");
  17. Properties p = new Properties();
  18. p.load(is);
  19. System.out.println(p.getProperty("upass"));
  20. }
  21. }

3.安全路径 WEB-INF

  1. package com.liaozhixiang.parse;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.util.Properties;
  5. import javax.servlet.ServletException;
  6. import javax.servlet.annotation.WebServlet;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. @WebServlet("/WebinfServlet")
  11. public class WebinfServlet extends HttpServlet {
  12. private static final long serialVersionUID = 1L;
  13. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  14. doPost(request, response);
  15. }
  16. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  17. //访问安全路径的配置文件
  18. InputStream is = request.getServletContext().getResourceAsStream("/WEB-INF/db.properties");
  19. Properties p = new Properties();
  20. p.load(is);
  21. System.out.println(p.getProperty("driver_Class"));
  22. System.out.println(p.getProperty("upass"));
  23. }
  24. }

二.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

选取当前节点的所有子节点

/

从根节点选取

//

从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置

.

选取当前节点

..

选取当前节点的父节点

@

选取属性

发表评论

表情:
评论列表 (有 0 条评论,127人围观)

还没有评论,来说两句吧...

相关阅读

    相关 XML

    目录 XML解析方式 一.java中配置文件的三种配置位置以及读取方式 1.读取相同目录下配置文件 2.根目录 3.安全路径 WEB-INF 二.DOM4J 2

    相关 【二】、xml

    > 上一篇中说到封装了HttpClient助手类和Json解析响应数据的封装。这节主要扩展响应数据解析类,封装出一个xml解析的实现类,适应微信第三方服务的接口。 主要实现的

    相关 json、xml

    ![Image 1][] -------------------- > 除了XML和Json,文中还涉及到的一些知识:第三方类库的使用,获取本地文件内容,网站API使用,G