概念:Extensible Markup Language 可扩展(标签都是自定义的)标记语言 功能:存储数据:配置文件;在网络中传输; xml与html的区别: (1)xml标签都是自定义的,html标签是预定义的。 (2)xml的语法严格,html语法松散 (3)xml是存储数据的,html是展示数据的
(1)xml文档的后缀名:.xml (2)xml第一行必须定义为文档声明 (3)xml文档中有且仅有一个根标签 (4)属性值必须使用引号(单双都可)引起来 (5)标签必须正确关闭 (6)xml标签名称区分大小写
1.文档声明: (1)格式:<?xml 属性列表?> (2)属性列表: version:版本号,必须的属性 encoding:编码方式,告知解析引擎当前文档使用的字符集 standalone:是否独立 2.指令:与css结合
<? xml-stylesheet type="text/css" href="a.css" ?>3.标签 规则: (1)名称可以包含字母、数字以及其他的字符 (2)名称不能以数字或者标点符号开始 (3)名称不能以字母xml(或者XML、Xml等等)开始 (4)名称不能包含空格 4.属性: id属性值唯一 5.文本 CDATA区:在该区域中的数据会被原样展示:格式:<![CDATA[ 数据 ]]>
1.DTD:一种简单的约束技术 2.Scheme:一种复杂的约束技术
概念:操作xml文档,将文档中的数据读取到内存中 操作xml文档: 1.解析(读取):将文档中的数据读取到内存之中 2.写入:将内存中的数据保存到xml文档中。持久化的存储 解析xml的方式: 1.DOM:将标记语言文档一次性加载进内存,在内存中形成一颗dom树 优点:操作方便,可以对文档进行CRUD的所有操作 缺点:占内存 2.SAX:逐行读取,基于事件驱动 优点:不占内存。 缺点:只能读取。
3.XML常见的解析器 1.JAXP:sun公司提供的解析器,支持dom和sax两种思想 2.DOM4J:一款非常优秀的解析器 3.Jsoup 4.PULL:Android操作系统内置的解析器,SAX方式
1.Jsoup:工具类,可以解析html文档或xml文档,返回Document 2.Document:文档对象。代表内存中的dom树 获取Element对象 getElementById(String id):根据id属性值获取唯一的element对象 getElementsByTag(String tagName):根据标签名称获取元素对象集合 getElementsByAttribute(String key):根据属性名称获取元素对象集合 getElemetnsByAttributeValue(String key, String value):根据对应的属性名和属性值获取元素对象集合 3.Elements:元素Element对象的集合。可以当做ArrayList <Element>来使用 4.Element:元素对象 (1)获取子元素对象 getElementById(String id):根据id属性值获取唯一的element对象 getElementsByTag(String tagName):根据标签名称获取元素对象集合 getElementsByAttribute(String key):根据属性名称获取元素对象集合 getElemetnsByAttributeValue(String key, String value):根据对应的属性名和属性值获取元素对象集合 (2)获取属性值 String attr(String key):根据属性名称获取属性值 (3)获取文本内容 String text( ):获取文本内容 String html():获取标签体的所有内容(包括标签的字符串内容) 5.Node:节点对象
selector:选择器 使用方法:Elements select(String cssQuery)
XPath:XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言