1.概念:XML(extensible markup language)可扩展标记语言
可扩展:标签都是自己定义的
作用:
存储数据:
1.配置文件
2.在网络中传输
xml与html的区别:
xml的标签都是自定义的,html标签都是预定义的
xml的作用是存储数据,html的作用是展示数据
xml的语法是严格的,html的语法是松散的
1.后缀名为.xml;
2.xml第一行必须得是定义为文档声明:
<?xml version="1.0" encoding="utf-8" ?>
3.xml中,有且只有一个根标签
4.属性值需要用双引号引起来
5.标签必须得正确关闭
6.xml标签区分大小写
<?xml version="1.0" encoding="utf-8" ?> <?xml-stylesheet type="text/css" href="a.css" ?> <users> <user id = '1'> <name>zhangsan</name> <age>18</age> <gender>male</gender> </user> <user id = '1'> <name>lisi</name> <age>20</age> <gender>female</gender> </user> <![CDATA[if(a >b && a < c)]]]> </users>
1.文档声明:<?xml 属性列表?>
属性:
version:版本号,必须加
encodeing:编码方式,默认为 ISO-8859-1
standalone:是否独立(yes,no)
2.指令:用于结合CSS
<?xml-stylesheet type="text/css" href="a.css"?>
3.标签:标签名称自定义
4.属性:id是唯一的
5.文本:
CDATA区:在该区域中的文本会被原样展示
<![CDATA[数据]]>
规定xml的书写格式
1.DTD:简单的约束文件
内部DTD:将约束规则定义在xml中
外部dtd:约束规则定义在外部文件中
本地:<!DOCTYPE 根标签名 SYSTEM "DTD文件的位置">
网络:<!DOCTYPE 根标签名 PUBLIC "dtd文件名" "dtd文件的url">
2.Schema:
1.填写xml文档的根元素
2.引入xsi前缀. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3.引入xsd文件命名空间. xsi:schemaLocation="http://www.itcast.cn/xml student.xsd"
4.为每一个xsd约束声明一个前缀,作为标识 xmlns="http://www.itcast.cn/xml"
就是将.xml读入内存或者是内存数据写出。
解析:操作xml文件,就是把.xml读取到内存中
解析方式:
1.DOM:将xml全部读取到内存中,形成dom树
2.SAX:逐行读取,基于事件驱动
解析器:
1.JAXP:官方的解析器,不好用
2.DOM4J:不错,但是不学
3.Jsoup:为html而生,但是也能用xml
4.PULL:安卓内置解析器
Jsoup快速入门:
1.导入jar包
2.获取document对象
3.获取对应标签的element对象
4.获取数据
快速入门
package jsoup; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import java.io.File; import java.io.IOException; public class JsoupDemo1 { public static void main(String[] args) throws IOException { //获取文档对象 String path = JsoupDemo1.class.getClassLoader().getResource("student.xml").getPath(); Document document = Jsoup.parse(new File(path), "utf-8"); //获取element,标签对象 Elements elements = document.getElementsByTag("name"); System.out.println(elements.size()); Element element = elements.get(0); String name = element.text(); System.out.println(name); } }
对象:
1.Jsoup:工具类
parse():(很多重载)
2.Document对象:
getElementByTag:
getElementById:
getElementByAttribute:
getElementByAttributeValue:
3.Elements对象:是ArrayList集合的子类,直接当成他用也行
4.Element对象:
1.获取子类对象
getElementByTag:
getElementById:
getElementByAttribute:
getElementByAttributeValue:
2.获取属性值
String attr(String key):根据属性名称获取属性值
3.获取文本内容
String text():获取文本对象的内容,只包含标签之间的文本
String html():获取标签体的所有内容,包括标签
5.Node节点对象
Document对象和Element对象的父类。
查询:
1.selector选择器:
照样得查手册,然后写selector里面的内容
2.Xpath:一种路径语言,专门用来确定xml中某位置的语言
需要导包
查询手册写selN里面的语句就行了