1、xml解析就是程序读取xml文件的内容。
2、解析方式有两种,原理不同:(1)DOM解析(2)SAX解析
dom解析原理:xml解析器一次性把整个xml文档加载进内存,然后在内存中构建一颗Document对象树,然后通过Document对象得到树上节点对象,通过节点对象操作XML文档的内容。
3、
DOM解析原理下的工具:
JAXP(Oracle —Sun官方的)
JDom(非官方)
Dom4J(非官方)使用最多,比如三大框架
SAX解析原理:
1)Sax解析工具(oracle-sun公司官方)
4、使用Dom4J,例子:
使用步骤:
(1)导包,复制dom4j-1.6.1.jar到工程,并选择Build Path→Add to build path.
(2)编写代码读取XML。
public class Demo1 {
public static void main(String[] args) {
try {
//1、创建XML解析器对象
SAXReader reader = new SAXReader();
//2、读取XML文档,返回Document对象
Document document = reader.read(new File("./src/contact.xml"));
System.out.println(document);
//结果:org.dom4j.tree.DefaultDocument@3ecfff [Document: name file:///D:/JavaEE/spaceone/day6-xml/./src/contact.xml]
} catch (DocumentException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
5、dom4J读取xml文件的一些方法。
节点:
Iterator Element.nodeIterator;//获取当前节点下的所有子节点。
标签:
Element Document.getRootElement();//获取XML文档的跟标签
Element Element.element("标签名")//指定名称的第一个子标签
Iterator<Element> Element.elementItrator("标签名称");//返回指名称的所以子标签
List<Element> Element.elements();//获取所有子标签。
属性:
String Element.attributeValue("属性名") //获取指定名称的属性值
Attribute Element.attribute("属性名");//获取指定名称的属性对象
Attribute.getName() //获取属性名称
Attibute.getValue() //获取属性值
List<Attribute> Element.attributes(); //获取所有属性对象
Iterator<Attribute> Element.attibuteIterator(); //获取所有属性对象
文本:
Element.getText(); //获取当前标签的文本
Element.elementText("标签名") //获取当前标签的指定名称的子标签的文本内容