XML基础知识点

XML是一种可扩展标记语言,标签由开发者自己制定(但要遵守一定的语法规则)。
(1)描述带关系的数据(作为软件的配置文件): 包 含与被包含的关系。
(2)作为数据的载体(存储数据,小型的“数据库”)。
作用:1.描述带关系的数据(软件的配置文件)2.数据的载体(小型的“数据库”)
XML语法:
xml文件以xml后缀名结尾。
xml文件需要使用xml解析器去解析。浏览器内置了xml解析器。
.1 标签
语法: 开始标签 标签体内容 结束标签
1) 或 空标签。没有标签体内容
2)xml标签名称区分大小写。
3)xml标签一定要正确配对。
4)xml标签名中间不能使用空格
5)xml标签名不能以数字开头
6)注意: 在一个xml文档中,有且仅有一个根标签
.2 属性
语法: student
注意:
1)属性值必须以引号包含,不能省略,也不能单双引号混用!!!
2)一个标签内可以有多个属性,但不能出现重复的属性名!!!
.3 注释
语言: <!-- xml注释 -->

.4 文档声明
语法: <?xml version="1.0" encoding="utf-8"?>

version: xml的版本号
encoding: 解析xml文件时查询的码表(解码过程时查询的码表)

注意:
1)如果在ecplise工具中开发xml文件,保存xml文件时自动按照文档声明的encoding来保存文件。
2)如果用记事本工具修改xml文件,注意保存xml文件按照文档声明的encoding的码表来保存。

.5 转义字符
在xml中内置了一些特殊字符,这些特殊字符不能直接被浏览器原样输出。如果希望把这些特殊字符按照原样输出到浏览器,对这些特殊字符进行转义。转义之后的字符就叫转义字节。
特殊字符 转义字符:

 <         &lt;
 >         &gt;
 "         &quot;
 &         &amp;
 空格      &nsbp;

.6 CDATA块
作用: 可以让一些需要进行包含特殊字符的内容统一进行原样输出。
.7 处理指令
作用: 告诉xml解析如果解析xml文档
案例: <?xml-stylesheet type="text/css" href="1.css"?> 告诉xml解析该xml文档引用了哪个css文件,需要提前xml内容可以使用xml-stylesheet指令指令

XML解析方式(原理不同)
DOM解析和SAX解析
DOM解析原理:xml解析器一次性把整个xml文档加载进内存,然后在内存中构建一颗Document的对象树,通过Document对象,得到树上的节点对象,通过节点对象访问(操作)到xml文档的内容。一般使用Dom4J工具(非官方)
SAX解析原理: 加载一点,读取一点,处理一点。对内存要求比较低。内置在jdk中。org.xml.sax.*

在使用DOM解析的时候,当使用dom4j查询比较深的层次结构的节点(标签,属性,文本),比较麻烦!这里引入了Xpath技术,xPath作用主要是用于快速获取所需的节点对象。
xPath语法:
/ 绝对路径 表示从xml的根位置开始或子元素(一个层次结构)
// 相对路径 表示不分任何层次结构的选择元素。
* 通配符 表示匹配所有元素
[] 条件 表示选择什么条件下的元素
@ 属性 表示选择属性节点
and 关系 表示条件的与关系(等价于&&)
text() 文本 表示选择文本内容

SAX解析核心的API:
SAXParser类: 用于读取和解析xml文件对象
**parse(File f, DefaultHandler dh)**方法: 解析xml文件

参数一: File:表示 读取的xml文件。
参数二: DefaultHandler: SAX事件处理程序。使用DefaultHandler的子类

 例如:
    {
 1.创建SAXParser对象  
SAXParser parser=SAXParserFactory.newInstance().newSAXParser();
2.调用parse方法
parser.parse(new File("./src/contact.xml"), new MyDefaultHandler());
    }[一个类继承class 类名(extends DefaultHandler)  在调用是创建传进去]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值