1、XML有两种约束方式,一种是dtd(内部dtd和外部dtd,一般外部dtd用的较多),文件后缀是.dtd。另一种是schema,schema的约束更为详细,可以详细到规定只能允许哪些元素、哪些值,文件后缀是.xsd。
2、解析XML的核心思想有SAX和DOM,工具包有很多个,比较流行的是dom4j,可以查看官方文档的quick start了解使用方法。实际开发中很少用到,在此只是了解解析原理和过程。
3、新建一个web project。复制一个dom4j-1.6.1.jar包到lib文件夹中(不需要我们自己创建lib目录),复制过来后,系统自动帮我们生成奶瓶,不需要我们自己Build Path。
4、拷贝一个待解析的students.xml文件到src下面。
@H_301_9@package com.hello.TestDom4j; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; import org.junit.Test; public class TestDom4j { @Test public void test1() throws DocumentException{ // 获得document对象 SAXReader reader=new SAXReader(); Document document=reader.read("src/students.xml"); // 获得里面的元素或者值 Element root=document.getRootElement(); List list=root.elements(); Element secondElement=(Element) list.get(1); String name=secondElement.element("name").getText(); System.out.println(name); } } @H_301_9@@Test public void test2() throws DocumentException{ SAXReader reader=new SAXReader(); Document document=reader.read("src/students.xml"); Element root=document.getRootElement(); treeWalk(root); } public void treeWalk(Element ele){ System.out.println(ele.getName()); for (int i = 0; i < ele.nodeCount(); i++) { Node node=ele.node(i); if(node instanceof Element){ treeWalk((Element)node); } } }输出结果是:
@H_301_9@students student name age student name age5、XPath的应用主要在于选择节点元素上,其余的和dom4j一样。
注意:别忘了导入jaxen的jar包。