XML文件

1.XML(EXtensible Markup Language 可扩展标记语言)

  • 本质是一种数据的格式,可以用来存储复杂的数据结构,和数据关系

2.XML的特点

  • XMl中的“<标签名>”称为一个标签或一个元素,一般是成对出现
  • XML中的标签名可以自己定义,但必须要正确的嵌套
  • XML中只能有一个根标签
  • XML中的标签可以有属性
  • 如果一个文件中放置的是XML格式的数据,这个文件就是XML文件

<?xml version="1.0" encoding="UTF-8" ?>
<!-- 注释:以上抬头声明必须放在第一行,必须有 -->
<!-- 根标签只能有一个 -->
<user>
    <user id="1">
        <name>xyy</name>
        <sex>男</sex>
        <password>123456</password>
        <data> 3 &lt; 2 &amp;&amp; 5  > 4</data>
        <data1>
            <![CDATA[
                3 < 2 && 5 > 4
            ]]>
        </data1>

    </user>
    <user id="2">
        <name>myy</name>
        <sex>女</sex>
        <password>123456</password>
    </user>
</user>

 3.XML的作用和应用场景

  • 本质是一种数据格式,可以存储复杂的数据结构,和数据关系
  • 应用场景:做为系统的配置文件

4.解析XML文件

  • 使用程序读取XML文件的数据
 public static void main(String[] args) throws DocumentException {
        //1.创建一个Dom4J框架提供的解析器对象
        SAXReader saxReader = new SAXReader();

        //2.使用saxReader对象把需要解析的XMl文件读成一个Document对象
        Document document =
                saxReader.read("D:\\java\\src\\helloWorld.xml");

        //3.从文档对象中解析XMl文件的全部数据
        Element root = document.getRootElement();
        System.out.println(root.getName());

        //4.获取根元素下的全部一级子元素
//        List<Element> elements = root.elements();
        List<Element> elements = root.elements("user");
        for (Element element : elements) {
            System.out.println(element.getName());
        }

        //5.获取当前元素下的某个子元素
        Element people = root.element("people");
        System.out.println(people.getText());

        //如果下面有很多子元素user,默认获取第一个
        Element user = root.element("user");
        System.out.println(user.elementText("name"));

        //6.获取元素的属性信息
        System.out.println(user.attributeValue("id"));
        Attribute id = user.attribute("id");
        System.out.println(id.getName());
        System.out.println(id.getValue());

        List<Attribute> attributes = user.attributes();
        for (Attribute attribute : attributes) {
            System.out.println(attribute.getName() + "=" + attribute.getValue());
        }

        //7.如何获取全部的文本内容:获取当前元素下的子元素文本值
        System.out.println(user.element("name"));
        System.out.println(user.element("password"));
        System.out.println(user.element("sex"));

        Element data = user.element("data");
        System.out.println(data.getText());
        System.out.println(data.getTextTrim()); //取出文本去除前后空格


    }

5.如何使用程序把数据写到XML文件中去

public static void main(String[] args) {
        //1.使用一个StringBuilder对象来拼接XML格式的数据
        StringBuilder sb = new StringBuilder();
        sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n");
        sb.append("<book>\r\n");
        sb.append("\t<name>").append("活着").append("<name>\r\n");
        sb.append("\t<author>").append("余华").append("<author>\r\n");
        sb.append("\t<price>").append("39.99").append("<price>\r\n");
        sb.append("<book>");

        try (
                BufferedWriter bw = new BufferedWriter(new FileWriter("src/book.xml"));
                ){
            bw.write(sb.toString());
        } catch (Exception e) {
            throw new RuntimeException(e);
        }


    }

6.什么是约束XML文件的书写

  • 就是限制XML文件只能按照某种格式进行书写
约束文档
  • 专门用来限制xml书写格式的文档(限制标签、属性应该怎么写)
  • 分类:DTD文档、Schema文档
  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值