一、XML概述

属性文件是用来描述程序配置,属性文件包含了一组名/值对。属性文件采用的是一种单一的平面层次结构,同时属性文件要求键是唯一的。

XML格式能够表达层次结构,并且重复的元素不会被曲解。

HTML和XML之间的区别:

1、与HTML不同,XML是大小写敏感的。

2、在HTML中,如果从上下文中可以分清哪里是段落或列表项的结尾,那么结束标签就可以省略,而在XML中结束标签绝对不能省略。

3、在XML中,只有单个标签而没有相对应的结束标签的元素必须以/结尾。

4、在XML中,属性值必须用引号括起来。在HTML中,引号是可有可无的。

5、在HTML中,属性名可以没有值。在XML中,所有属性必须都有属性值。

XML文档应当以一个文档头开始(文档头是可选的),文档头之后通常是文档类型定义(文档类型定义是确保文档正确的一个重要机制,但是它不是必需的),最后,XML文档的正文包含根元素,根元素包含其他元素。

元素可以有子元素,文本或两者皆有。XML元素可以包含属性(属性只应该用来修改值的解释)。

XML文档的其他标记:

1、字符引用的形式是&#十进制值;或&#x十六进制值。

2、实体引用的形式是&name。(<>&"&apos都有预定义的含义:小于、大于、&、引号、省略号)。

3、CDATA部分用<![CDATA[ 和 ]]>来限定其界限。它们是字符数据的一种特殊形式。你可以使用它们来囊括那些含有<、>、&之类字符的字符串,而不必将它们解释为标记。CDATA部分不能包含字符串]]>,使用这一特性时要特别小心,因为它常用来当作将遗留数据偷偷纳入XML文档的一个后门。

4、处理指令是那些专门在处理XML文档的应用程序中使用的指令,它们由<?和?>来限定其界限。每个XML都以一个处理指令开头。

5、注释用<!-和-->限定其界限。注释不应该含有字符串--。注释只能是给文档的读者提供的信息,其中绝不应该含有隐藏的命令,命令应该是用来处理指令来实现的。

二、解析XML文档

Java库提供了两种XML解析器:

1、像文档对象模型解析器这样的树形解析器,它们将读入的XML文档转换成树结构。

2、像XML简单API解析器这样的流机制解析器,它们在读入XML文档时生成相应的事件。

三、验证XML文档

如果要指定文档结构,可以提供一个文档类型定义(DTD)或一个XML Schema定义。DTD或Schema包含了用于解释文档应如何构成的规则,这些规则指定了每个元素的合法子元素和属性。

四、使用XPath来定位信息。

五、流机制解析器

Java类库提供的两种流机制解析器:

1、SAX解析器:使用的是事件回调。

2、StAX解析器:提供了遍历解析事件的迭代器。

六、XSL转换

XSL转换机制可以指定将XML文档转换为其他格式的规则。

Java基础(十)的更多相关文章

  1. Java基础十二--多态是成员的特点

    Java基础十二--多态是成员的特点 一.特点 1,成员变量. 编译和运行都参考等号的左边. 覆盖只发生在函数上,和变量没关系. Fu f = new Zi();System.out.println( ...

  2. Java基础十--接口

    Java基础十--接口 一.接口的定义和实例 /* abstract class AbsDemo { abstract void show1(); abstract void show2(); } 8 ...

  3. Java基础(十二)--clone()方法

    Clone在Java中就是用来复制对象,通过分配一个和源对象相同大小的内存空间,然后创建一个新的对象,那么他和=的区别在哪? 通过=实现对象拷贝: @Data @NoArgsConstructor @ ...

  4. java基础(十六)----- equals()与hashCode()方法详解 —— 面试必问

    本文将详解 equals()与hashCode()方法 概述 java.lang.Object类中有两个非常重要的方法: public boolean equals(Object obj) publi ...

  5. java基础(十五)----- Java 最全异常详解 ——Java高级开发必须懂的

    本文将详解java中的异常和异常处理机制 异常简介 什么是异常? 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常. Java异常的分类和类结构图 1.Java中的所 ...

  6. java基础十[包、Jar存档文件和部署](阅读Head First Java记录)

    将Java的class文件生成为可执行的Java应用程序.Java应用程序有三种:完全在本机执行的Jar(例如本机的GUI可执行程序):完全在服务器端远程执行的(例如浏览器来进行存取):介于两者之间的 ...

  7. 黑马程序员 Java基础<十八>---> 网路编程

    --------------- ASP.Net+Android+IO开发S..Net培训.期待与您交流! --------------- 第一  概述 一.概述: 1.网络模型:OSI参考模型和TCP ...

  8. java基础(十八)----- java动态代理原理源码解析

    关于Java中的动态代理,我们首先需要了解的是一种常用的设计模式--代理模式,而对于代理,根据创建代理类的时间点,又可以分为静态代理和动态代理. 静态代理 1.静态代理 静态代理:由程序员创建或特定工 ...

  9. java基础(十)-----Java 序列化的高级认识

    将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java 系列技术中一个较为重要的技术点,在大部分情况下,开发人员只需要了解被序列化的类需要实现 Serializable 接口,使用 ...

  10. java基础(十四)-----详解匿名内部类——Java高级开发必须懂的

    在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意的事项.匿名内部类使用的形参为何要为final. 使用匿名内部类内部类 匿名内部类由于没有名字,所以它的创建方式有点儿奇怪.创建格式如下: n ...

随机推荐

  1. 黑马程序员_毕向东_Java基础视频教程——算术运算符小点(随笔)

    算术运算符小点 ​ 取模 class Test{ public static void main(String[] args){ System.out.println( 1 % -5); System ...

  2. 开发一个maven脚手架

    写在前面 开发新项目就需要搭建新工程,但是搭建新工程的这个过程是非常繁琐浪费时间的,并且不可避免的需要踩坑.更可怕的是,如果是在一个团队中,每新起一个项目都由不同的开发人员去自定义的搭建工程结构,那么 ...

  3. 爬虫之requests的请求与响应

    requests是基于urllib3的一个用于发起http请求的库(中文文档)数据采集流程: 指定url>> 基于 requests模块发起请求>> 获取响应中的数据>& ...

  4. iperf压测linux网卡带宽

    1.安装 yum install iperf --enablerepo=epel 2.启动服务端 iperf -s -i 1 3.启动客户端测试10分钟 iperf -c 172.16.3.153 - ...

  5. Spring IOC 容器 简介

    Spring 容器是 Spring 框架的核心.容器将创建对象,把它们连接在一起,配置它们,并管理他们的整个生命周期从创建到销毁. Spring 容器使用依赖注入(DI)来管理组成一个应用程序的组件. ...

  6. MySQL(4)— 数据查询

    四.数据查询(DQL) 4-1.查询指定字段 select 完整 语法: select [distinct] 字段名1 [as] [别名],字段名2 [as] [别名] from 表1 [ left ...

  7. Angular SPA基于Ocelot API网关与IdentityServer4的身份认证与授权(三)

    在前面两篇文章中,我介绍了基于IdentityServer4的一个Identity Service的实现,并且实现了一个Weather API和基于Ocelot的API网关,然后实现了通过Ocelot ...

  8. PHP实现白名单或黑名单

    /**  * 安全IP检测,支持IP段检测  * @param string $ip 要检测的IP  * @param string|array $ips  白名单IP或者黑名单IP  * @retu ...

  9. Maven快速入门(一)Maven介绍及环境搭建

    做开发的程序员都知道,在系统开发需要各自各样的框架.工具.其中有一种工具不管你是初级程序员还是高级程序员都必须熟练掌握的,那就是项目管理工具(maven.ant.gradle).接下来就总结Maven ...

  10. [批处理教程之Shell]001.文本处理

    在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器).它类似于DOS下的command和后来的cmd.exe.它接收用户命令,然后调用相应的应用程序. 同时 ...