Java 之 XML
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的更多相关文章
- java对xml节点属性的增删改查
学习本文之前请先看我的另一篇文章JAVA对XML节点的操作可以对XML操作有更好的了解. package vastsum; import java.io.File; import java.io.Fi ...
- java解析xml的三种方法
java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax; import org.xml.sax.Attributes; import org.xml.sax.SAXE ...
- Java获取XML节点总结之读取XML文档节点
dom4j是Java的XML API,用来读写XML文件的.目前有很多场景中使用dom4j来读写xml的.要使用dom4j开发,需要下载导入dom4j相应的jar文件.官网下载:http://www. ...
- 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 ...
- java解析XML(转载)
使用Dom4j解析XML dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的 ...
- java解析XML文件
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源 ...
- Java for XML: JAXP、JAXB、JAXM、JAX-RPC、JAX-WS
在XML领域里,对XML文件的校验有两种方式:DTD校验.Schema校验.在Java中,对于XML的解析,有多种方式:DOM解析.SAX解析.StAX解析.结合XML和Java后,就产生了Bind技 ...
- Java 解析XML的几种方法
XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便. XML在不同的语言里解析方式都是一样的,只不过实现的语法不同而已. 基本的解析方式 ...
- # java对xml文件的基本操作
下面是简单的总结三种常用的java对xml文件的操作 1. dom方式对xml进行操作,这种操作原理是将整个xml文档读入内存总,在内存中进行操作,当xml文档非常庞大的时候就会出现内存溢出的异常,这 ...
- 用java操作XML文件(DOM解析方式)
XML 可扩展标记语言(Extensible Markup Language),是独立于软件和硬件的传输工具. XML的作用: (1)用作配置文件 (2)简化数据共享 (3)简化数据传输 XML DO ...
随机推荐
- js---json对象拆分
var a={ "bb":"world", "a0":1, "a1":2, "b0":4, &quo ...
- 谷歌被爆秘密研发新系统 欲5年内取代Android
谷歌2年多来有一群工程师秘密研发新系统,希望最终能取代手机操作系统安卓.安卓日前遭欧盟以反垄断为由重罚. 谷歌的新研发计划Fuchsia是从零开始,希望在更多个人装置和各式小巧装置联机上网的情况下,能 ...
- Modbus库开发笔记之五:Modbus RTU Slave开发
Modbus在串行链路上分为Slave和Master,这一节我们就来开发Slave.对于Modbus RTU从站来说,需要实现的功能其实与Modbus TCP的服务器端是一样的.其操作过程也是一样的. ...
- Confluence 6 后台中的选择站点首页
后台中的选择站点首页选择项. https://www.cwiki.us/display/CONFLUENCEWIKI/Configuring+the+Site+Home+Page
- Let the Balloon Rise <map>的应用
Contest time again! How excited it is to see balloons floating around. But to tell you a secret, the ...
- 【mysql】datetime时间比较
如下,比较的日期用指定格式写出就可以了.不需要日期函数. SELECT * FROM table_a WHERE write_date > "2017-07-17 00:00:00&q ...
- laravel 获取当前月,当前星期,当天起始时间方法
获取当前月起始时间: 1. $time=time(); $start=date('Y-m-01',$time);//获取指定月份的第一天 $end=date('Y-m-t',$time); //获取指 ...
- 【Vue】组件watch props属性值
转载: https://www.cnblogs.com/mqxs/p/8972368.html #HTML <div id="example"> <p> & ...
- easyui实现背景图片半透明状态,悬浮在大背景之上
首先是查找素材,使用AI将所需要的图案画出来,切记将图案的背景设置为所需要的透明状态.项目使用的是easyui架构 为啥加两个背景图呢,因为这样的布局最开始是给一个矩形框加上的背景图片,若是还使用矩形 ...
- 论文阅读笔记八:SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation (IEEE2017)
原文链接:https://arxiv.org/pdf/1511.00561.pdf github(tensorflow):https://github.com/aizawan/segnet 基于Seg ...