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 ...
随机推荐
- Java jvisualvm 远程监控tomcatt
第一步 在远程tomcat 的bin目录下的start.sh 文件中添加一些内容(添加在exec "$PRGDIR"/"$EXECUTABLE" start & ...
- PID控制器开发笔记之一:PID算法原理及基本实现
在自动控制中,PID及其衍生出来的算法是应用最广的算法之一.各个做自动控制的厂家基本都有会实现这一经典算法.我们在做项目的过程中,也时常会遇到类似的需求,所以就想实现这一算法以适用于更多的应用场景. ...
- 关于python3链接虚拟机MongoDB 遇到的问题总结
pymongo.errors.ServerSelectionTimeoutError: 192.168.12.230:27017: [Errno 61] Connection refused 1.如果 ...
- 团队开发工具git常用命令
Git 常用命令 Git配置 git config --global user.name "storm" git config --global user.email " ...
- Cpython支持的进程与线程
一.multiprocessing模块介绍 python中的多线程无法利用CPU资源,在python中大部分情况使用多进程.python中提供了非常好的多进程包multiprocessing. mul ...
- 操作dom获取datatable中的某一行的某一列的数据
需求描述:编辑的时候,点击的那一行,进入后台的验证方法,验证通过后,再进入编辑页面,进入的时候需要把本行<tr>数据中的某一列<td>的值传递过去 思路表述:之前我想的是,给列 ...
- cf1110d 线性dp
很精练的一道题 /* dp[i][j][k]表示值i作为最大值结束的边剩k条,i-1剩下j条的情况的结果 dp[i][k][l]是由dp[i-1][j][k]的j决定的,因为k+l是被留下给后面用的, ...
- 第二周学习总结-Java
2018年7月22日 暑假第二周马上就要结束了,这一周我继续学习了java. 本周学到了一些Java的修饰词,比如static.private.public等,这些修饰词用法与c++类似,很容易掌握. ...
- fdisk命令
fdisk -l命令详解 Disk /dev/sda: 53.7 GB, 53687091200 bytes 块设备名称为/dev/sda,此设备的大小为53.7GB,这个数字不是特别精确,我系统是5 ...
- python http请求类
# -*- coding: UTF-8 -*- # coding="utf-8" import httplib2 import json from urllib.parse imp ...