五、XML

五、XML

1、XML简介和作用

1.1、xml简介

1、xml是可扩张的标记性语言。

1.2、作用

1、用于保存数据,而且这些数据具有自我描述

2、它还可以作为项目或者模块的配置文件

3、还可以做为网络传输数据的格式(现在以JSON为主)

2、xml语法

2.1、文档声明

1、声明

image-20230405145723899

2、属性

image-20230405145741376

2.2、xml注释

1、和html一样

2、格式:\

2.3、元素

1、什么是xml元素内容

1、元素是指从开始标签到结束标签的内容。

2、元素 我们可以简单的理解为是 标签。 Element 翻译 元素

2、命名规则

1、名称可以含有字母、数字以及其他字符

2、名称不能以数字或标点符号开始

3、名称不能以字符“xml”或者(XML、Xml)开始(其实是可以的)

4、名称不能包含空格

3、项目了元素也分单标签和双标签

1、单标签和双标签格式

image-20230405151834875

4、xml属性

1、xml属性和html标签属性是非常类似的,属性可以提供元素的额外信息

2、标签上可以写属性:一个标签可以写多个属性,每个属性值必须用引号,引起来。

5、xml语法规则

1、所有XML元素都必须是关闭标签(闭合)

2、XML标签对大小写敏感

3、XML必须正确嵌套

4、XML文档必须由根元素

image-20230405152110028

6、xml中的特殊字符

1、>:\>

2、<:\<

7、xml文本区域(CDATA区)

1、内容:告诉xml解析器,该函数内全部都是文本

2、CDATA格式:

image-20230405152343516

2.4、xml解析技术介绍

1、xml介绍

1、xm是可扩展的标记语言

2、不管html还是xml文件都是标记型文档,都可以使用w3c组织制定的dom技术来解析。

3、图解

image-20230405153041573

4、document对象表示的是整个文档(可以是xml,也可以是html)

2、了解两种xml技术DOM和Sax(已过时,作为了解)

1、内容

image-20230405153157990

2.5、dom4j解析技术

1、编程步骤

1、步骤

image-20230405161104449

2、获取document对象

1、创建一个 lib 目录,并添加 dom4j 的 jar 包。并添加到类路径。

3、遍历标签获取所有标签内容

1、步骤

image-20230405161200249

4、例子

将xml中内容转换为Book类内容

1、该xml为需要被解析的内容

<?xml version="1.0" encoding="UTF-8"?>
<books>
    <book sn="SN12341232">
        <name>辟邪剑谱</name>
        <price>9.9</price>
        <author>班主任</author>
    </book>
    <book sn="SN12341231">
        <name>葵花宝典</name>
        <price>99.99</price>
        <author>班长</author>
    </book>
</books>

2、获取document对象代码

/*
* dom4j 获取 Documet 对象
*/
@Test
public void getDocument() throws DocumentException {
// 要创建一个 Document 对象,需要我们先创建一个 SAXReader 对象
SAXReader reader = new SAXReader();
// 这个对象用于读取 xml 文件,然后返回一个 Document。
Document document = reader.read("src/books.xml");
// 打印到控制台,看看是否创建成功
System.out.println(document);
}

3、创建Book类,一些get和set方法

package src.com.qt.pojo;

import java.math.BigDecimal;
public class Book {
    private String sn;
    private String name;
    private Double price;
    private String author;

 //get和set这里省略不写
 //构造器也是,无参和有参都要
 //toString省略

4、编写遍历代码

    /*
    读取books.xml文件生成book类
     */
    @Test
    public void test2() throws DocumentException {
//        1、通过books.xml文件
        SAXReader reader = new SAXReader();
//        2、在Junit测试中,相对路径是从模块开始算
        Document document = reader.read("05_xml/src/books.xml");
//        3、通过根元素获取book标签对象
        Element rootElement = document.getRootElement();
//        element 和elements都是通过标签名查找子元素的
        List<Element> books = rootElement.elements("book");
//        4、遍历,处理每个book标签转换为Book类
        for (Element book:books){
//          asXML()把标签对象。转换为标签字符串
            Element nameElement = book.element("name");
//            getXML():把标签对象,转换为标签字符串
            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,Double.parseDouble(priceText),authorText));
        }

    }
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇