JavaScript之XML

什么是XML

  • XML(EXtensible Markup Language) 指的是可扩展标记语言。
  • XML的设计宗旨是传输数据,而并非是显示数据。
  • XML标签系统没有预定义,需要自己定义。
  • XML被设计为具有自我描述性。

XML和Html的区别

  • XML被设计为传输数据和存储数据,其焦点是数据的内容。
  • HTML被设计为数据的显示,其焦点是数据的如何显示和数据的外观。

XML的作用

XML的作用图

常见的XML解析方式

  • SAX
  • DOM
  • PULL
  • DOM4J

XML树结构

XML树结构

举例:读取和写入XML中的学生信息

1、student.xml

<?xml version="1.0" encoding="UTF-8"?>
<students>
    <student id="1">
        <sname>张三</sname>
        <sage>12</sage>
    </student>
</students>

2、读取XML中的学生信息,并显示在控制台上

public static void main(String[] args) throws DocumentException {
        //获取SAXReader实例
        SAXReader reader = new SAXReader();
        //获取xml文件
        File file = new File("xml/students.xml");
        //获取文档对象
        Document doc = reader.read(file);
        //获取根节点
        Element root = doc.getRootElement();
        //获取全部子节点
        List<Element> list = root.elements();
        //遍历所有的子节点
        for (Element ele : list) {
            String id = ele.attributeValue("id");
            String sname = ele.elementTextTrim("sname");
            String sage = ele.elementTextTrim("sage");
            System.out.println(id+","+sname+","+sage);
        }
    }

3、写入学生信息到XML文件中

public static void main(String[] args) {
        //通过documentHelper创建一个document对象
        Document doc = DocumentHelper.createDocument();
        //通过documentHelper创建一个根节点
        Element root = DocumentHelper.createElement("students");
        //将根节点添加到文档对象doc中
        doc.setRootElement(root);
        //根据用户需求创建不同的子节点
        Element ele = root.addElement("student");
        //给子节点设置属性
        ele.addAttribute("id", "1");
        //给student节点添加子节点
        Element sname = ele.addElement("sname");
        sname.setText("张三");
        Element sage = ele.addElement("sage");
        sage.setText("12");

        //将文档对象写入xml文件中
        File file = new File("xml/students.xml");
        FileOutputStream out = null;
        XMLWriter writer = null;
        //文档格式化
        OutputFormat format = null;
        //第一个参数代表缩进,第二个参数代表是否换行
        format = new OutputFormat("\t", true);

        try {
            out = new FileOutputStream(file);
            writer = new XMLWriter(out, format);
            writer.write(doc);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            try {
                writer.close();
                out.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值