XML
一、简介
XML 指可扩展标记语言(eXtensible Markup Language)。
XML
被设计用来传输和 存储数据(框架的部分,配置文件,properties ,yml)。<books><book ><name>三国</name><price>386.9</price></book><book ><name>红高粱</name><price>36.9</price></book><book ><name>蛙</name><price>36.9</price></book></books>
xml作为数据的传输,现在已经被json代替了,如下代码就是json[ {"name":"三国","price":386.9},{"name":"红高粱","price":36.9},{"name":"蛙","price":36.9}]
以上代码就是一个描述书籍的xml文件
因而xml的可扩展性,编写者可以随意的写标签不太好,那么就需要制定关于xml文件内容的约定,DTD可以达到这样的效果
二、DTD
1)简介
DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块。
DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。
一个简单的dtd文件(book.dtd)
<!ELEMENT books (book+)><!ELEMENT book (name,price)><!ELEMENT name (#PCDATA)>-
2)dtd文件的引入,可以通过三种方式
1、引入外部的dtd文件
<!DOCTYPE 根元素名称 SYSTEM "dtd文件路径">
2、使用内部的dtd文件
<!DOCTYPE books [<!ELEMENT books (book+)><!ELEMENT book (name,price)><!ELEMENT name (#PCDATA)><!ELEMENT price (#PCDATA)>]>
3、使用外部的dtd文件(网络上的dtd文件)
<!DOCTYPE 根元素名称 PUBLIC "DTD名称" "DTD文档的URL">三、XML文件的解析()
XML文件现在更多用于存放配置信息,解析方式主要有如下四种:
1、DOM解析;2、SAX解析;3、JDOM解析;4、DOM4J解析。其中前两种属于基础方法,是官方提供的平台无关的解析方式;后两种属于扩展方法,它们是在基础的方法上扩展出来的,只适用于java平台。而DOM4J是使用最多的。需要导包dom4j.jar
DOM4J
特征:
1、JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功能。
2、它使用接口和抽象基本类方法。
3、具有性能优异、灵活性好、功能强大和极端易用的特点。
4、是一个开放源码的文件public class Test {
public static void main(String[] args) {
SAXReader reader= new SAXReader();
try {Document dom=reader.read(new File("book.xml"));
Element root=dom.getRootElement();//获取到根元素System.out.println( root.getName() );
//获取到子元素对象List<Element> cs=root.elements();
for (Element el : cs) {//book元素
Element nameEl=el.element("name");//name元素Element priceEl=el.element("price");//price元素
//获取文本String name=nameEl.getText();String pstr=priceEl.getText();float price=Float.parseFloat(pstr);
System.out.println(name+","+price);
}
} catch (DocumentException e) {e.printStackTrace();}
}
}
