xml可拓展标记语言
可扩展:标签是自定义的
功能:存储数据 (配置文件/在网络中传输)
xml与html区别:标签自定义,语法严格,存储数据
语法:
*后缀.xml
*第一行文档声明
*有且仅有一个根标签,属性值用引号
*必须结束标签
*区分大小写
xml组成:
文档声明:<?xml version="" encoding="" (standalone="")>
standalone yes/no 是否独立(依赖其它文件)(一般不设置)
指令(了解):结合css
<?xml-stylesheet type="text/css" href="a.css"?>
标签:名称自定义
规则:
名称可以包含字母数字及其他字符
不能以数字或者标点符号开始
不能以xml(xML...)表示
名称不能包含空格
属性:键值对组成,id属性值唯一
文本:CDATA区:在该区域中的数据会被原样展示
<![CDATA [ 展示数据 ] ]>
约束:
软件(半成品软件-框架)使用者(程序员)编写xml,软件解析xml
约束:规定XML文档的书写规则
作为框架的使用者:能够在xml中引入约束文档,能够简单的读懂约束文档
约束分类:
DTD:简单的约束技术
引入dtd文档到xml文档中:
内部dtd:将约束规则定义在xml文档中(了解)
外部dtd:将约束规则定义在外部的dtd文件中
*本地<!DOCTYPE 根标签名 SYSTEM "dtd文件的位置">
*网络<!DOCTYPE 根标签名 PUBLIC "dtd文件名字" "dtd文件的位置URL">
Schema:一种复杂的约束技术,做到内容的限定
解析:操作xml文档,将文档中的数据读取到内存中
操作xml文档:
1、解析(读取):将文档中的数据读取到内存中
2、写入:将内存中的数据保存到xml文档中。持久化的存储。
解析xml的方式:
1、DOM:将标记语言文档一次性加载进内存,在内存中形成一棵dom树
*优点:操作方便,可以对文档进行CRUD操作
*缺点:消耗内存
服务端
2、SAX:逐行读取,基于事件驱动
不占内存,只能读取,不能增删改
xml解析器:
1、JAXP:支持dom和sax两种思想(了解)
2、DOM4J:支持dom思想
3、jsoup:
jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
4、Android系统内置解析器,sax方式
jsoup使用:
导入jar包,获取Document对象,获取对应的标签Element对象,获取数据
对象:
Jsoup:工具类,可以解析html或xml文档,返回Document
parse(File in,String String charset):解析文档,返回Document对象
parse(URL,int timeoutMillis):通过网络路径获取指定的html或xml指定对象
Document:文档对象。代表内存中的Dom树
获取Element对象:getElementsByTag/Attribute/AttributeValue/ID(不多)
Elements:元素Element对象的集合。可以当做ArrayList<Element>使用
attr("")
text():获取标签文本内容 html()
快捷查询Element对象
选择器:Elements select("css选择器"),参考selector语法
xpath: