1.XML

  a.定义:可扩展标记语言

  b.用途:现在主要用来以一种格式化的形式来存储数据

  c.注意:XML中是区分大小写的

2.DTD

  a.定义:文档类型定义

  b.作用:定义 XML 文档的合法构建模块

  c.语法:

<?xml version="1.0" encoding="utf-8"?>

<!--  DTD语句 -->
<!DOCTYPE students [
<!ELEMENT students (student*,teacher)>
<!ELEMENT student (#PCDATA)>
<!ELEMENT teacher (#PCDATA)>
]> <!-- XML语句 -->
<students>
<student></student>
<student></student>
<teacher></teacher>
</students>

  d.外部引用DTD:

    <!DOCTYPE 根元素 SYSTEM "文件名"> SYSTEM表示的是本地的DTD文件,PUBLIC表示的是官方的DTD文件

<!DOCTYPE students SYSTEM "myDTD.dtd">

3.XML解析器

  a.分类:

    ①DOM(树结构):整个文档必须在内存解析和储存,因此对大型文档来说,耗内存,占用资源严重; 也因为数据都在内存,解析获取数据效率高

    ②SAX():基于事件驱动的模型,标签一个一个的解析,开始标签和结束标签对应不同的事件,不会将整个文档加载到内存,所以不会浪费内存资源; 也因此解析获取

          数据效率不高

  b.解析:

        File file = new File("src/com/jiexi/my.xml");

        SAXReader read = new SAXReader();
try {
Document doc = read.read(file); Element e = doc.getRootElement(); List<Element> stus = e.elements("student"); List<Student> list = new ArrayList<Student>();
for(Element stu : stus){
Student s = new Student();
Attribute a = stu.attribute("id");
System.out.println(a.getValue());
s.setName(stu.element("name").getText().trim());
s.setAge(Integer.parseInt(stu.element("age").getText().trim()));
list.add(s);
} for(Student s : list){ System.out.println("name:"+s.getName());
System.out.println("age:"+s.getAge());
} } catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }

  c.写:

        File file = new File("D:/134xml.xml");

        OutputStream out = new FileOutputStream(file);

        XMLWriter xmlWriter = new XMLWriter(out);

        Document doc = DocumentHelper.createDocument();

        Element e = doc.addElement("users");

        Element user = e.addElement("user");

        user.addAttribute("id", "1");

        user.addElement("userName").setText("zhangsan");
try {
xmlWriter.write(doc);
xmlWriter.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

Java 之 XML的更多相关文章

  1. java对xml节点属性的增删改查

    学习本文之前请先看我的另一篇文章JAVA对XML节点的操作可以对XML操作有更好的了解. package vastsum; import java.io.File; import java.io.Fi ...

  2. java解析xml的三种方法

    java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax; import org.xml.sax.Attributes; import org.xml.sax.SAXE ...

  3. Java获取XML节点总结之读取XML文档节点

    dom4j是Java的XML API,用来读写XML文件的.目前有很多场景中使用dom4j来读写xml的.要使用dom4j开发,需要下载导入dom4j相应的jar文件.官网下载:http://www. ...

  4. java 处理XML(dom4j-1.6.1)

    java 处理XML(dom4j-1.6.1) Java 处理xml有很多框架,今天使用主流框架dom4j-1.6.1 下载地址:http://www.dom4j.org/dom4j-1.6.1/ D ...

  5. java解析XML(转载)

    使用Dom4j解析XML dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的 ...

  6. java解析XML文件

    dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源 ...

  7. Java for XML: JAXP、JAXB、JAXM、JAX-RPC、JAX-WS

    在XML领域里,对XML文件的校验有两种方式:DTD校验.Schema校验.在Java中,对于XML的解析,有多种方式:DOM解析.SAX解析.StAX解析.结合XML和Java后,就产生了Bind技 ...

  8. Java 解析XML的几种方法

    XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便. XML在不同的语言里解析方式都是一样的,只不过实现的语法不同而已. 基本的解析方式 ...

  9. # java对xml文件的基本操作

    下面是简单的总结三种常用的java对xml文件的操作 1. dom方式对xml进行操作,这种操作原理是将整个xml文档读入内存总,在内存中进行操作,当xml文档非常庞大的时候就会出现内存溢出的异常,这 ...

  10. 用java操作XML文件(DOM解析方式)

    XML 可扩展标记语言(Extensible Markup Language),是独立于软件和硬件的传输工具. XML的作用: (1)用作配置文件 (2)简化数据共享 (3)简化数据传输 XML DO ...

随机推荐

  1. CSS margin属性取值

    margin表示一个元素的外边距.取值为正值时,表示相对于正常流离邻近元素更远,而取负值时,使其更近 但是,设置margin后,四个方向的表现形式不同 自身发生移动:top.left margin-t ...

  2. C语言学习及应用笔记之三:C语言const关键字及其使用

    在C语言程序中,const关键字也是经常会用到的一个关键字,那么使用const关键字的目的是什么呢?事实上,在程序中使用const关键字的主要目的就是为了向使用者传递设计者的一些意图. 事实上,无论我 ...

  3. win 系统设置weblogic 进行定时自动重启并删除其日志和缓存文件,定时监控cpu是否达到100%并重启weblogic服务

    一:如何在win系统设置 任务管理:请百度查询 win系统设置 任务管理 二:设置 webogic 重启并删除垃圾文件的bat脚本 sqlplus /nolog @C:\Users\Administr ...

  4. 整合 JIRA 和 Confluence 6

    Jira 应用和 Confluence 可以完全的整合在一起.在 Confluence 中收集你项目组成员的想法,知识和计划.在 Jira 中跟踪你的系统出现的问题,让这 2 个应用同时工作. 了解更 ...

  5. ubuntu MySQL的安装

    https://i.cnblogs.com/EditPosts.aspx?opt=1 https://juejin.im/entry/5adb5deff265da0b9d77cb3b MySQL Co ...

  6. hdu3635

    /* 一开始第a个球在第a个城市 操作T a b,把第a个球所在城市的所有球移到b所在的城市 操作Q a 要求输出 第a个球在哪个城市 第a个球所在的城市有几个球 第a个球移动次数 */ #inclu ...

  7. mysql 文件导入

    load data infile 文件路径 into table 表 fields terminated by ',' lines terminated '\n'

  8. CF979E

    非常好的dp,非常考dp的能力 很显然是个计数问题,那么很显然要么是排列组合,要么是递推,这道题很显然递推的面更大一些. 那么我们来设计一下状态: 设状态f[i][j][k][p]表示目前到了第i个点 ...

  9. C++设计模式——观察者模式(转)

    前言 之前做了一个性能测试的项目,就是需要对现在的产品进行性能测试,获得测试数据,然后书写测试报告,并提出合理化的改善意见.项目很简单,我们获得了一系列性能测试数据,对于数据,我们需要在Excel中制 ...

  10. 微信小程序--代码构成---JSON 配置

    在上一章中,我们通过开发者工具快速创建了一个 QuickStart 项目.你可以留意到这个项目里边生成了不同类型的文件: .json 后缀的 JSON 配置文件 .wxml 后缀的 WXML 模板文件 ...