前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >XML笔记

XML笔记

作者头像
技术交流
发布2022-11-18 17:09:13
3370
发布2022-11-18 17:09:13
举报
文章被收录于专栏:@学习笔记@学习笔记

XML:可扩展的标记性语言。 XML的主要作用: 1、用来保存数据; 2、可以做为项目或者模块的配置文件; 3、做为网络传输数据的格式(JSON现在为主)。 XML的注释和HTML的一样。 XML命名规则: 1、名称可以包含字母、数字以及其他的字符; 2、名称不能以数字或标点符号开始; 3、名称不能包含空格。 XML标签也分单、双标签。 XML的属性: 一个标签上可以书写多个属性。每个属性的值必须用引号括起来。 XML对大小写敏感,且标签要闭合。标签必须正确嵌套。XML文档必须要有根元素。 XML里面的文本区域:(CDATA区) 区里的内容只是纯文本。 格式: <![CDATA[....纯文本,原样显示字符....]]>

早期JDK提供了两种XML解析技术DOM和Sax DOM解析技术是W3C组织定的 SAX解析,是一行一行读取xml文件进行解析,不会创建大量dom对象。 第三方的解析: jdom在dom基础上进行了封装 dom4j又对jdom进行了封装 pull主要用于Android手机开发,是在跟sax非常类似都是事件机制解析xml文件

dom4j解析技术: 这个Dom4j是第三方的解析技术,我们需要第三方给我们提供好的类库才可以解析xml文件。这个jar包网上都有

在这里插入图片描述
在这里插入图片描述

要记得把这个jar包添加到类路径下。

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?> <!--xml的声明-->
<books>
    <book>
        <name>计算机网络</name>
        <price>70</price>
        <出版社>机械工业出版社</出版社>
    </book>
    <book>
        <name>操作系统导论</name>
        <price>60</price>
        <出版社>人民邮电出版社</出版社>
    </book>
</books>

使用dom4j技术解析该xml文件:

代码语言:javascript
复制
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.util.List;

public class Dom4jTest {
    public static void main(String[] args) throws Exception {
        //1.读取books.xml文件
        SAXReader reader = new SAXReader();
        Document document = reader.read("XML/src/books.xml");
        //System.out.println(document);
        //2.通过Document对象来获取根元素
        Element rootElement = document.getRootElement();
       // System.out.println(rootElement);
        //System.out.println(rootElement.asXML()); //asXML()把标签对象转换为标签字符串
        //3.通过根元素获取标签对象
        List<Element> books = rootElement.elements("book");
        //4.遍历,处理每个book标签转换为Book类
        for(Element book : books) {
            //System.out.println(book.asXML());
            Element nameElement = book.element("name");
            Element elementPrice = book.element("price");
            Element elementPress = book.element("出版社");
            //getText()可以获取标签中的文本内容
            System.out.println("书名:" +  nameElement.getText() + " , 价格:"
                    + elementPrice.getText() + ", 出版社:" + elementPress.getText());
        }
    }
}

注:如果是高版本的JDK运行时会出现警告,但是不影响运行。

在这里插入图片描述
在这里插入图片描述

解决方案是把项目JDK降低到1.8及以下。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-10-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档