XML

一、xml基础

  • 创建第一个xml文件

       1.新建模块----Java工程 

       2.在工程目录下创建xml文件夹

       3.在xml文件下,新建books.xml文件

<?xml version="1.0" encoding="utf-8" ?>
<!--
1.开头第一句表示xml文件的声明
2.xml version="1.0"  version表示xml的版本
3.encoding="utf-8"   encoding表示xml文件本身的编码
-->
<!--books表示多个图书信息-->
<books>
    <!--book表示一个图书信息-->
    <book sn="SN123143234234432">
        <!--name标签表示书名-->
        <name>时间简史</name>
        <!--author标签表示作者-->
        <author>霍金</author>
        <!--price表示价格-->
        <price>75</price>
    </book>
</books>
  • xml基本概念
<!--
XML简介
1.什么是xml?
  xml是可扩展的标记性语言
2.xml的作用
  xml的主要作用有:
  1.用来保存数据,而且这些数据具有自我描述性
  2.作为项目或者模块的配置文件
  3.作为网络传输数据的格式(现在以JSON为主)
3.xml语法
  1.文档声明
  2.元素(标签)
  3.xml属性
  4.xml注释
  5.文本区域(CDATA区)
    1.可以告诉xml解析器,CDATA里的文本内容,只是纯文本,不需要xml语法解析
    2.格式: <![CDATA[
            文本内容
             ]]>
-->
  • dom4j读取xml文件得到Document对象

  • dom4j解析xml生成Book类
package booksClass;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test;

import java.util.List;

public class Dom4jTest {
    @Test
    public void test1() throws DocumentException {
        //1.创建一个SAXReader输入流,去读取xml配置文件,生成Document对象
        SAXReader saxReader = new SAXReader();
        try {
            //在junit测试中,相对路径是从模块名开始算,意思是直接从模块名向下找
            Document doc = saxReader.read("src/books.xml");
            System.out.println(doc);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /*
    读取books.xml文件生成Book类
    */
    @Test
    public void test2() throws DocumentException {
        //1.读取books.xml文件
        SAXReader reader = new SAXReader();
        Document doc = reader.read("src/books.xml");
        //2.通过文档对象获取根元素
        Element rootElement = doc.getRootElement();
        //3.通过根元素获取book标签对象
        List<Element> books = rootElement.elements("book");
        //4.遍历,处理每个book标签转换为book类
        for(Element book : books) {
            Element nameElement = book.element("name");
            //getText()用于获取标签中的文本内容
            String nameText = nameElement.getText();
            //直接获取指定标签名的文本内容
            String priceText = book.elementText("price");
            String authorText = book.elementText("author");
            //获取属性值
            String snValue = book.attributeValue("sn");
            System.out.println(new Book(snValue,nameText,authorText,Double.parseDouble(priceText)));
        }
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值