DTD
一种简单的约束技术
流程
引入文档到xml文档
内部dtd:将约束规则定义在xml文档中
外部dtd:将约束的规则定义在外部的dtd文件中
引入方式
本地:<.lDOCTYPE根标签名SYSTEM“dtd文件的位置"">
网络:
<?xml version="1.0" encoding="UTF-8" ?> <!--引入--> <!DOCTYPE students SYSTEM "student.dtd"> <students> <student number="s001"> <name>zs</name> <age>23</age> <sex>male</sex> </student> <student number="s002"> <name>ls</name> <age>24</age> <sex>female</sex> </student> </students>
<!ELEMENT students (student*) > <!ELEMENT student (name,age,sex) > <!ELEMENT name (#PCDATA) > <!ELEMENT age (#PCDATA) > <!ELEMENT sex (#PCDATA) > <!ATTLIST student number ID #REQUIRED>
Schema
复杂的约束技术
基于DTD多了一些限制
解析
操作xml文档,将文档中的数据读取到内存中
1.解析(读取):将文档中的数据读取到内存中
2.写入:将内存中的数据保存到xml文档中。持久化的存储*
解析xml的方式:
1.DOM∶将标记语言文档一次性加载进内存,在内存中形成一颗dom树
优点:操作方便,可以对文档进行CRUD的所有操作
缺点:占内存
2.SAX︰逐行读取,基于事件驱动的。
优点:不占内存。
缺点:只能读取,不能增删改
解析器
JAXP:SUN公司提供的解析器,支持dom和sax两种
DOM4J:优秀的解析器
Jsoup:jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
PULL:Android系统内置的
Jsoup
入门:
1.导入jar包
2.获取Document对象
3.获取对应的标签Element对象
4.获取数据
实例
package xml.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; import java.net.URL; public class JsoupDemo01 { public static void main(String[] args) throws IOException { //1.获取Document对象,根据xml文档获取 //获取student.xml的path String path = JsoupDemo01.class.getClassLoader().getResource("student.xml").getPath(); //2.解析xml文档 Document document = Jsoup.parse(new File(path), "utf-8"); //3,获取元素对象,Element,返回的其实是一个集合 Elements elements = document.getElementsByTag("name"); // System.out.println(elements.size()); Element element = elements.get(0); //4.获取数据 String name = element.text(); System.out.println(name); } }
对象的使用