XML---XML和Dom4j的使用

XML

DTD文档约束:

在这里插入图片描述

创建文件,后缀名是.dtd
示例:
Book.dtd文件

<!ELEMENT 书架 (书+)>
<!ELEMENT  (书名,作者,售价)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 售价 (#PCDATA)>

创建xml文件引入:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE 书架 SYSTEM "Book.dtd">
<书架>
    <>
        <书名>西游记</书名>
        <作者>吴承恩</作者>
        <售价>500</售价>
    </>
    <>
        <书名>红楼梦</书名>
        <作者>曹雪芹</作者>
        <售价>500</售价>
    </>
</书架>

schema文档约束:

在这里插入图片描述
编写schema文档必须是.xsd结尾

示例;
在这里插入图片描述
Book.xsd:

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
        targetNamespace="http://www.Dom4j_Test"
        elementFormDefault="qualified">
    <!--targetNamespace:申明约束文档的地址(命名空间)-->
    <element name='书架'>
        <!--写子元素-->
        <complexType>
            <!-- maxOccurs=' unbounded ' :书架下的子元素可以有任意多个! -->
            <sequence >
                <element name=''>
                    <complexType>
                        <sequence>
                            <element name='书名' type='string'/>
                            <element name='作者' type='string'/>
                            <element name='售价' type='double'/>
                        </sequence>
                    </complexType>
                </element>
            </sequence>
        </complexType>
    </element>
</schema>

Book xml:

<?xml version="1.0" encoding="UTF-8" ?>
<书架 xmlns="http://www.Dom4j_Test">
    <>
        <书名>西游记</书名>
        <作者>吴承恩</作者>
        <售价>55</售价>
    </>
</书架>

Dom解析工具

在这里插入图片描述

文档模型:

在这里插入图片描述

代码示例:

首先的得到xml文件:

在这里插入图片描述

使用方法解析元素和属性:

在这里插入图片描述

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


import java.io.InputStream;
import java.util.List;

public class Dom4jTest01 {
    public static void main(String[] args) throws DocumentException {
        SAXReader sax=new SAXReader();
        //相当于直接找本类的模块名去拿xml文件路径
        //InputStream is= Dom4jTest01.class.getResourceAsStream("/Book_dtd.xml");

        Document document = sax.read("Book_dtd.xml");

        //获取根元素对象
        Element rootElement = document.getRootElement();
        System.out.println(rootElement);

        List<Element> elements = rootElement.elements();
        for (Element e:elements){
            System.out.println(e);
        }
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牛总来学习了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值