XML解析

1、什么是XML?
  • XML是可扩展标记语言(Extensible Markup Language)

可扩展:标签并不止一套(可以扩展)

        web.xml        有一套标签        servlet  servlet-name  servlet-class ...

        Spring        spring.xml        bean

        SpringMVC        springMVC.xml        <mvc:XXX>

约束:由组织去定义,看约束文件如何规定

例:在web.xml中:

用途

  1. 异步系统之间进行数据传输的媒介(json代替)
  2. 配置文件 

properties         XML        web.xml        SSM

2、xml的基本语法

<?xml version="1.0" encoding="UTF-8"?>

②约束

3、xml的解析

java程序如何拿到xml文件中的数据

  • dom  (一下子全取)
  • sax (一点一点取)

1、创建 employees.xml 并写好标签

<?xml version="1.0" encoding="UTF-8"?>
<!--没有约束文件,标签和属性都随便写-->
<emloyees>
    <employee id="101">
        <name>张三</name>
        <age>18</age>
        <address>北京</address>
    </employee>
    <employee id="102">
        <name>李四</name>
        <age>20</age>
        <address>上海</address>
    </employee>
    <employee id="103">
        <name>王五</name>
        <age>19</age>
        <address>深圳</address>
    </employee>
</emloyees>

2、导入dome4j.jar包

3、开始时创建xml解析器对象

SAXReader reader = new SAXReader();

4、让解析器对象去解析xml文件

Document document = reader.read(Demo1.class.getClassLoader().
getResourceAsStream("employees.xml"));

5、开始获取内容

Element root = document.getRootElement(); //获取根节点对象
Element emloyee = root.element("emloyee");//第一个employee
String text = name.getText();//获取name标签中的文本
List<Element> employees = root.elements("employee"); //获取多个Element对象
Attribute id = employee1.attribute("id");   根据属性名获得属性对象
package com.atguigu.demo4j;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.util.List;

public class Demo1 {
    public static void main(String[] args) {
        //1.创建解析器对象
        SAXReader reader = new SAXReader();

        try{
            Document document = reader.read(Demo1.class.getClassLoader().getResourceAsStream("employees.xml"));
            Element root = document.getRootElement(); //获取根节点对象
            Element employee = root.element("employee");//第一个employee
            Element name = employee.element("name");//name
            String text = name.getText();//获取name标签中的文本
            System.out.println("text = "+text);
            System.out.println("-------------------");
            List<Element> employees = root.elements("employee"); //获取多个Element对象

            for (Element element : employees){
                Element name1 = element.element("name");
                String text1 = name1.getText();
                System.out.println("text1 = " + text1);
            }
            System.out.println("---------------------");
            Element employee1 = root.element("employee");
            Attribute id = employee1.attribute("id");
            String  value  = id.getText();
            System.out.println("value = " + value);
        }catch (DocumentException e){
            e.printStackTrace();
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值