JavaEE之XML的解析

简介: JavaEE之XML的解析

1.重要性

企业级--->框架--->配置文件--->XML--->约束dtd

1.XML的存放的位置不一样,如何通过代码去获取文件

2.XML中指定类容的获取

3.获取类容的简便方式

2.格式良好的XML

<persons> <persons>

3.XML文件中的元素约束

分类:文本.空 . 混合

个数分类: 0/1 :   ?    0/n     1-n  +    

<!DOCTYPE rootElement

<!ELEMENT root

>

4.XML文件中的元素属性约束分类:

文本 . ID . IDREF. (..|..)

个数分类:   0/1     0-n     1-n

XML配置的作用:

如果我们要改工具类我们就会累死;

这样也说明了我们的XML的配置是有帮助的,我们可以把配置文件的信息可以都写在配置文件中如果我们要改我们到时候可以脱过去

方法1:

读取不同位置的配置文件 :同包  根目录  安全路径WEB-INF

 让Properties工具类对象,加载含有db.properties文件类容所对应的流

package com.zkingahao;
import java.io.IOException;
import java.io.InputStream;
import com.sun.xml.internal.fastinfoset.sax.Properties;
/**
 * 
 * @author Administrator
 *
 */
public class Demo1 {
  public static void main(String[] args) throws IOException {
    //通过类加载器加载配置文件(同包下)
//    InputStream in = demo1.class.getResourceAsStream("db.properties");
//    Properties p = new Properties();
    //通过类加载器加载配置文件(根路径下)
    InputStream in = Demo1.class.getResourceAsStream("/db.properties");
    //安全路径
//    InputStream in = req.getServletContext().getResourceAsStream("/WEB-INF/db.properties");
    Properties p = new Properties();
    //让Properties工具类对象,加载含有db.preperties文件类容所对应的流
    p.load(in);
    System.out.println(p.getProperty("driver_Class"));
    System.out.println(p.getProperty("upass"));
  }
}

步骤2:

      先获取到需要解析的配置文件 获取所有student标签中的内容 获取name标签的内容 获取标签内部的内日容 获取标签属性值

public static void main(String[] args) throws Exception {
    //先获取到需要解析的配置文件
    InputStream in = Demo2.class.getResourceAsStream("student.xml");
    SAXReader sr = new SAXReader();
    Document doc = sr.read(in);
    System.out.println(doc.asXML());
    //获取所有student标签中的内容
    List<Element> stuEles = doc.selectNodes("/student/student");
    for (Element stuEle : stuEles) {
    //System.out.println(stuEle.asXML());
      //获取name标签的内容
      Element nameEle = (Element) stuEle.selectSingleNode("name");
      //System.out.println(nameEle.asXML());
      //获取标签内部的内容
      System.out.println(nameEle.getText());
      //获取标签属性值
      System.out.println(stuEle.attributeValue("sid"));
    }
  }
}

方法3:

1.先获取到需要解析的配置文件

2.再获取所有student标签中的内容后

3.进行xpath解析

public static void main(String[] args) throws Exception {
    InputStream in = Demo2.class.getResourceAsStream("student.xml");
    SAXReader sr = new SAXReader();
    Document doc = sr.read(in);
    //System.out.println(doc.asXML());
    List<Element> stuEles = doc.selectNodes("/student/student");
    for (Element stuEle : stuEles) {
      if("s002".equals(stuEle.attribute("sid"))) {
        Element nameEle = (Element) stuEle.selectSingleNode("name");
        System.out.println(nameEle.getText());
      }
    }
    Element nameEle = (Element) doc.selectSingleNode("/students/student[@sid='s002']/name");
    System.out.println(nameEle.getText());
  }

7f4bb15c9a4d61e8d84306f22d43fea0.jpg

目录
相关文章
|
19天前
|
XML JavaScript 前端开发
xml文件使用及解析
xml文件使用及解析
|
1月前
|
XML 前端开发 数据格式
请描述如何使用`BeautifulSoup`或其他类似的库来解析 HTML 或 XML 数据。
【2月更文挑战第22天】【2月更文挑战第67篇】请描述如何使用`BeautifulSoup`或其他类似的库来解析 HTML 或 XML 数据。
|
1天前
|
XML 存储 数据格式
探索 DTD 在 XML 中的作用及解析:深入理解文档类型定义
DTD(文档类型定义)用于定义XML文档的结构和合法元素、属性。它允许不同团体就数据交换标准达成一致,并用于验证XML数据的有效性。DTD可通过内部声明(在XML文档内)或外部声明(在单独文件中)来定义。内部声明示例显示了如何定义`note`元素及其子元素的结构,而外部声明则引用外部DTD文件。元素、属性、实体和PCDATA/CDATA是XML构建模块。DTD中,元素通过ELEMENT声明定义,属性通过ATTLIST声明定义,实体声明提供特殊字符或外部资源的快捷方式。
4 0
|
5天前
|
XML Java 数据库连接
Javaweb之Mybatis的XML配置文件的详细解析
Javaweb之Mybatis的XML配置文件的详细解析
13 0
|
8天前
|
XML C# 数据格式
C# 解析XML文件
C# 解析XML文件
17 1
|
1月前
|
XML Java 数据格式
使用java解析XML文件的步骤
使用java解析XML文件的步骤
10 0
|
1月前
|
XML 存储 JavaScript
深入学习 XML 解析器及 DOM 操作技术
所有主要的浏览器都内置了一个XML解析器,用于访问和操作XML XML 解析器 在访问XML文档之前,必须将其加载到XML DOM对象中 所有现代浏览器都有一个内置的XML解析器,可以将文本转换为XML DOM对象
72 0
|
2天前
|
XML 人工智能 Java
Spring Bean名称生成规则(含源码解析、自定义Spring Bean名称方式)
Spring Bean名称生成规则(含源码解析、自定义Spring Bean名称方式)
|
10天前
yolo-world 源码解析(六)(2)
yolo-world 源码解析(六)
20 0
|
10天前
yolo-world 源码解析(六)(1)
yolo-world 源码解析(六)
13 0

推荐镜像

更多