第二十章 XML
来源:互联网 发布:淘宝评价和销量被删除 编辑:程序博客网 时间:2024/05/16 13:50
html比xml产生的早些,发展也很不错。但是html有着2个缺点,是xml曾经想要替代的。
就是标记语法不是很严格,有时候难以判断,造成长时间的等待。还有就是厂商众多,导致语言不太统一,各有特点。给编程者带来一些麻烦。
xml这些方面来说,一是语法更加严格,要求标记有开始必有结束,除非是单标记。只能有一个根元素。并且必须有正确嵌套。
还有xml可以扩展。允许用户自定义一些自己的标记。但是需要提供解释文档。以便浏览器可以正确的解析。常用的有dtd文档和schema
一、用途
xml现在常用作网络配置文件,在数据交换和结构化存储及显示方面有着很广泛的应用。另外就是配置文件。
二、组成
xml有两部分组成:
1.序言
包括一下几个部分
声明:<?xml version="1.0" encoding= "UTF-8"?>
注释:<!-- 注释 -->
样式说明::<?xml sytlesheet="******" ?>
空白:
描述文档:系统文件<!DOCTYPE 根元素名称 SYSTEM "dtd文件路径">
网络资源<!DOCTYPE 根元素名称 PUBLIC "网络dtd文件url">
内置定义<!DOCTYPE 根元素名称 【里面直接定义dtd文件内容】>
2.文档元素
xml文档元素包括 元素和属性
<!ELEMENT 元素名称 (子元素列表)>
子元素后面可以跟这些修饰符:?0或1次,+1或多次,*0或多次。“,”表示元素的顺序。()表示元素分组,|表示选其中一个。
如果元素后面没有嵌套的子元素时,可以用#PCDATA来表示含有文本描述。EMPTY表示元素无任何文本描述。
<!ATTLIST 属性名称
属性名称 数据类型 约束
CDATA字符串 #REQURED 必须选择填写
ID唯一不能重复 #IMPLIED 可以选择
IDREF 引用其他ID #Defualtvalue 默认值
>
三、解析
解析技术分为2种:
一个是进行校验的处理器;
一个是不进行校验的处理器;
java中常用的2种API 是
DOM :小文件可以反复查询,可以修改和排序,还能与其他程序在内存中共享,因为它是将文件全部加载到内存中进行处理。是文档树的模型,可以显示的处理。
SAX:适用于大型文件的一次性 选择性的扫描。 它是事件触发模型。只有扫描到需求的内容时,才会产生事件,可以忽略不关心的部分。
DOM和SAX的实现方法有
JAXP,JDOM,DOM4J3种
DOM4J 简单易用,适合处理小型的文档。使用了java集合框架。
列子:
import java.util.List;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class MyXML {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubSAXReader saxreader = new SAXReader();try {Document document = saxreader.read("homework.xml");List list = document.selectNodes("//tanks/tank/name");for(Object obj:list){Element ele = (Element) obj;System.out.println(ele.getText());}} catch (DocumentException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{if(saxreader != null){}}}}
- 第二十章 XML
- 第二十章
- 通译第二十章:保险
- 梦里人第二十章
- 第二十章、WWW 伺服器
- 第二章第二十题
- 第二章第二十题
- 第二章第二十题
- 第三章 第二十题
- 第四章第二十题
- 第二十章 Skeletal Animation
- 第二十章 函式库管理
- 《道德经》第二十章
- 第二十
- java学习第二十七天html&css、xml
- java学习第二十八天之XML解析
- XML第二十讲:DOM4J 解析XML深入详解
- 第二十章 时态的呼应
- setImmediate() and setTimeout()
- 业务建模 之 业务序列图
- [libxml2]_[XML处理]_[使用libxml2的xpath特性修改xml文件内容]
- Jackson 高性能的JSON处理 ObjectMapper
- Promise.timeout()
- 第二十章 XML
- 求向量中每100个点的平均值
- 生成uImage
- Eclipse中如何查看Java自带函数的源代码?
- HDU1075 字典树
- #.NET中子窗体刷新(调用)父窗体
- 优化java代码性能
- 执笔 为她的笑容
- 《CSS设计彻底研究》读书笔记 第03章 深入理解盒子模型