Java之路 Java WEB 【第一篇】XML

XML作用

xml和html类似,xml元素、属性可以自定义

1. 可以用来保存数据(用的少)
2. 可以用来做配置文件
3. 数据传输载体

XML文档的树形结构

文档声明

简单声明, version : 解析这个xml的时候,使用什么版本的解析器解析
<?xml version="1.0" ?>

encoding : 解析xml中的文字的时候,使用什么编码来翻译
<?xml version="1.0" encoding="gbk" ?>

standalone  : no - 该文档会依赖关联其他文档 ,  yes-- 这是一个独立的文档
<?xml version="1.0" encoding="gbk" standalone="no" ?>   

XML解析 

常用的有2种 

DOM
SAX

两种解析方式的API  

jaxp  sun公司。 比较繁琐
jdom
dom4j  使用比较广泛

Dom4j基本用法

1. 创建SaxReader对象
2. 指定解析的xml
3. 获取根元素。
4. 根据根元素获取子元素或者下面的子孙元素
依赖包 dom4j
package com.mingren;

import java.io.File;
import java.util.List;

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

public class HelloWorld {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("hello world");

        try {
            // 1. 创建sax读取对象
            SAXReader reader = new SAXReader(); // jdbc -- classloader
            // 2. 指定解析的xml源
            Document document = reader.read(new File("src/xml/stus.xml"));

            // 3. 得到元素
            // 得到根元素
            Element rootElement = document.getRootElement();

            // 获取根元素下面的子元素 age
            // rootElement.element("age")
            // System.out.println(rootElement.element("stu").element("age").getText());
            // 获取根元素下面的所有子元素 。 stu元素
            List<Element> elements = rootElement.elements();
            // 遍历所有的stu元素
            for (Element element : elements) {
                // 获取stu元素下面的name元素
                String name = element.element("name").getText();
                String age = element.element("age").getText();
                System.out.println("name=" + name + "==age+" + age);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}
demo

Xpath

dom4j里面支持Xpath的写法。 xpath其实是xml的路径语言,支持我们在解析xml的时候,能够快速的定位到具体的某一个元素。

依赖包 jaxen
package com.mingren;

import java.io.File;

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

public class HelloWorld {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("hello world");

        try {
            // 1. 创建sax读取对象
            SAXReader reader = new SAXReader(); // jdbc -- classloader
            // 2. 指定解析的xml源
            Document document = reader.read(new File("src/xml/stus.xml"));

            // 3. 得到元素
            // 得到根元素
            Element rootElement = document.getRootElement();

            Element nameElement = (Element) rootElement
                    .selectSingleNode("//name");
            Element ageElement = (Element) rootElement
                    .selectSingleNode("//age");

            System.out.println("name=" + nameElement.getText() + "==age+"
                    + ageElement.getText());

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}
demo

 

  

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

  

posted @ 2019-10-19 19:49  沐风先生  阅读(104)  评论(0编辑  收藏  举报