第十七天XML(可扩展标记语言)基础
1.概念(标签自定义)
xml中的标签都是自定义的。
2.功能(保存数据,传递数据)
主要用于配置文件,将数据存储到xml文件,进行传递。
3.入门
1.第一行必须写文档申明
<?xml version='1.0'?>version:版本号
encoding:编码
standalone:是否独立yes or no
2.有且仅有一个根标签
3.属性值必须用引号包围
4.标签必须正确关闭
5.区分大小写
4.结合css控制标签样式
引入css
<?xml-stylesheet type="text/css" href="a.css"?><user id=‘1’>
<name>张三<\name>
</user>
name{
color:red;
}
5.CDATA区
原样展示数据(特殊字符问题)
格式:<![CDATA[ 数据 ]]>
6.约束
1.DTD约束
约束文件定义
<!ELEMENT students (student*) >
<!ELEMENT student (name,age,sex)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
<!ATTLIST student number ID #REQUIRED>
xml文件引入约束
<!DOCTYRE students SYSTEM "student.dtd">2.Schema约束
7.解析xml
1.DOM:将标记语言文档加载到内存中,形成DOM树。
优点:操作方便
缺点:占内存
2.SAX
优点:不占内存
缺点:编写麻烦
xml解析器
1.JAXP:sun提供的、dom与sax,没用
2.DOM4J:DOM解析
3.Jsoup:DOM解析,既可以解析HTML也可以解析XML
4.Pull:Android内置的解析器
8.Jsoup:解析器
对象
1.Jsoup,工具类,可以解析html或xml文档,返回Document
方法:parse
parse(File in, String charsetName):解析xml或html文件的。
parse(String html):解析xml或html字符串
parse(URL url, int timeoutMillis):通过网络路径获取指定的html或xml的文档对象
2.Document:文档对象。代表内存中的dom树
方法:getElement
getElementById(String id):根据id属性值获取唯一的element对象
getElementsByTag(String tagName):根据标签名称获取元素对象集合
getElementsByAttribute(String key):根据属性名称获取元素对象集合
getElementsByAttributeValue(String key, String value):根据对应的属性名和属性值获取元素对象集合
3.Elements:元素Element对象的集合。可以当做 ArrayList来使用
4. Element:元素对象
获取子元素对象
getElementById(String id):根据id属性值获取唯一的element对象
getElementsByTag(String tagName):根据标签名称获取元素对象集合
getElementsByAttribute(String key):根据属性名称获取元素对象集合
getElementsByAttributeValue(String key, String value):根据对应的属性名和属性值获取元素对象集合
获取属性值
String attr(String key):根据属性名称获取属性值
获取文本内容
String text():获取文本内容
String html():获取标签体的所有内容(包括字标签的字符串内容)
5. Node:节点对象
是Document和Element的父类
6.选择器是selector 类似于css中的选择器
使用方法
Elements select(String cssQuery);
参考Selector类中定义的语法
//示例:获取id为student_id_1的student标签,下的name标签
Elements select = document.select("student[id='student_id_1'] > name");
7.Xpath