认识XML
|----XML编写要求:
XML声明:
1.XML声明用于指明当前文件为XML文件,文件采用的XML版本和编码.
2.<?xml version="1.0" encoding="UTF-8" ?>
XML文档:
标签要求:
<元素名 属性名="属性值">元素内容(子元素、字符等)</元素名>
元素的命名规则如下:
名称中可以包含字母、数字或者其他的字符
名称不能以数字或者标点符号开始
名称不能以字符“xml”(或者XML、Xml)开始
名称中不能含空格
属性的语法规则如下:
属性可以加在任何一个元素的起始标签上,但不能加在结束标签上
属性值用双引号包裹
一个元素可以有多个属性,多个属性之间用空格隔开
属性值中不能直接包含 <、"、&
特殊字符
1.包括 < 、> 、' 、" 、&
2.使用预定义实体对特殊字符进行转义
特殊字符 | 实体名称 |
---|---|
< | < |
> | > |
" | " |
’ | &apos |
& | & |
总结:
格式良好的XML文档需要遵循如下规则
有XML声明语句
有且仅有一个根元素
标签大小写敏感
属性值用双引号
标签成对/空标签关闭
元素正确嵌套
解析XML
目前常用的XML解析有4种:
1.DOM
DOM是基于XML树结构来完成解析的,DOM解析XML文档时,会根据读取的文档,构建一个树结构加载到内存中,因为整个XML文档时在内存中的,所以对于增加,修改,删除操作非常方便,适用于多次访问XML文档的程序。但是由于整个XML文档被加载到内存中,所以时DOM解析是比较消耗资源的。
2.SAX
SAX是基于事件解析的,它是为了解决DOM解析的资源消耗出现的。它不用事先调入整个XML文档结构,它是一边解析一边读取的,所以它的优势就是占用资源少,内存消耗小,一般在解析数据量较大的XML文档时会采用这种方式。
3.JDOM
DOM和SAX是不针对语言的,而JDOM是针对Java的特定文档模型,它简化了与XML的交互并且比使用DOM更快。
4.DOM4J
DOM4J是一个非常优秀的Java XML API ,性能优异,功能强大,同时也是一个开源库。
DOM4J用于在java平台上使用java集合框架处理XML,XPath和XSLT,并与DOM,SAX,JAXP完全集合。DOM4J大量使用接口,面向接口编程使它比JDOM更加灵活。
使用DOM读取XML数据
DOM解析XML文档原理
DOM解析XML文档步骤
使用DOM解析时常用的对象
示例:以DOM方式读取手机信息
手机信息.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<iPhoneInfo>
<Brand name="华为">
<Type name="P90">18000</Type>
</Brand>
<Brand name="iPhone">
<Type name="iPhone X">5000</Type>
<Type name="iPhone XS">7000</Type>
</Brand>