Java Web 学习 - XML

XML

1、定义: XML 是可扩展的标记行语言
2、作用:

  • 用来保存数据,且数据具有自我描述性
  • 可作为项目或者模块的配置文件
  • 可作为网络传输数据的格式(现在以JSON为主)

3、语法:

  • 文档声明
    在这里插入图片描述例如:
<?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>

通过浏览器显示:
在这里插入图片描述

  • 元素(标签):元素是指从开始标签到结束标签的内容
    在这里插入图片描述
    元素命名规则:

    ① 可包含字母、数字以及其它字符
    ② 名称不能以数字或者标点符号开始
    ③ 名称不能包含空格

  • 属性
    -在这里插入图片描述

属性必须使用引号引起来,不引会报错示例代码

4、语法规则

  • 所有 XML 元素都须有关闭标签(也就是闭合)
    -
    -XML 标签对大小写敏感
    在这里插入图片描述
  • XML 必须正确地嵌套
    在这里插入图片描述
  • XML 文档必须有根元素(没有父标签),且根元素唯一
    在这里插入图片描述
  • XML 的属性值须加引号
    在这里插入图片描述
  • XML 中的特殊字符
    在这里插入图片描述
  • 文本区域(CDATA 区)
    在这里插入图片描述在这里插入图片描述5、xml 解析技术:我们需要用到第三方的dom4j来解析
    在这里插入图片描述6、dom4j解析
  • dom4j 编程步骤:
    ①先加载 xml 文件创建 Document 对象
    ②通过 Document 对象拿到根元素对象
    ③通过根元素.elelemts(标签名); 可以返回一个集合,这个集合里放着。所有你指定的标签名的元素对象
    ④找到你想要修改、删除的子元素,进行相应在的操作
    ⑤保存到硬盘上
    public  void  test1() throws DocumentException {
        //创建一个Saxreader输入流
        SAXReader saxReader = new SAXReader();
        //用于读取xml文件并返回一个document对象
        Document doc=saxReader.read("src/books.xml");
        //输出看看
        System.out.println(doc);
    }
  • 遍历 标签 获取所有标签中的内容
    ①通过创建 SAXReader 对象。来读取 xml 文件,获取 Document 对象
    ②通过 Document 对象。拿到 XML 的根元素对象
    ③通过根元素对象。获取所有的 book 标签对象
    ④遍历每个 book 标签对象。然后获取到 book 标签对象内的每一个元素,再通过 getText() 方法拿到起始标签和结 束标签之间的文本内容
    public void test2(){
//    1、读取books.xml文件
        SAXReader reader = new SAXReader();
//        在junit测试中,相对路径是从模块名开始算
        try {
            Document document = reader.read("src/books.xml");
            //    2 通过文档对象获得根元素
            Element rootelement = document.getRootElement();
//            System.out.println(rootelement);
//    3、通过根元素,获取book标签对象
//            elements()和element()都是通过标签名查找子元素
            List<Element> books = rootelement.elements("book");
//    4、处理每个标签转换称book类
            for (Element book:books){
//                asXML 把标签对象,转换为标签字符串
//                System.out.println(book.asXML());
                Element name = book.element("name");
//                System.out.println(name.asXML());
//                getText()可以获得标签中的文本内容
                String nameText =name.getText();
                //拿到book下的price,其余同理
                String price = book.elementText("price");
                String sn = book.attributeValue("sn");
                String author = book.elementText("author");
                System.out.println(sn+nameText+price+author);
            }
        } catch (DocumentException e) {
            e.printStackTrace();
        }

    }

打印内容:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值