JAXP(Java API XML Parser)
1 // java解析xml文档最常用的有两种方法,一种是基于事件的xml简单API,称为SAX, 另外一种是基于树和节点的文档对象模型。
2 // 1.SAX读取xml文档
3 try {
4 SAXParserFactory factory = SAXParserFactory.newInstance();
5 SAXParser parser = factory.newSAXParser();
6 // 创建事件处理器
7 DefaultHandler dh = new DefaultHandler();
8 // 解析xml文档
9 parser.parse(new File(""), dh);
10 } catch (Exception e) {
11 e.printStackTrace();
12 }
13
14 // 2.DOM对象读取xml文档
15 // 为解析xml文档创建document对象
16 try {
17 DocumentBuilderFactory factory = DocumentBuilderFactory
18 .newInstance();
19 DocumentBuilder builder = factory.newDocumentBuilder();
20 org.w3c.dom.Document doc = builder.parse(new File(""));
21 // 初期化
22 doc.normalize();
23 // 获取节点信息
24 NodeList nodeList = doc.getElementsByTagName("name");
25
26 } catch (Exception e) {
27 e.printStackTrace();
28 }
29
30 //3.利用dom4j读取xml文档
31 try {
32 //creates a DOM4J tree from SAX parsing events
33 SAXReader reader = new SAXReader();
34 InputStream inputStream = Thread.currentThread()
35 .getContextClassLoader().getResourceAsStream("config.xml");
36 Document doc = reader.read(inputStream);
37 Element root = doc.getRootElement();
38 } catch (Exception e) {
39 e.printStackTrace();
40 }
41
42 //备注:用SAX读取xml文档要更快点,它允许用户在读取的时候对它进行处理,然而DOM对象需要在整个DOM树结构创建完了之后才能开始处理;
43 //但是DOM对象的Document对象里面的方法要比SAX解析后的Document对象里面的方法更加丰富,转换和处理的时候就更加容易了,对比2和3可一很容易看出。
2 // 1.SAX读取xml文档
3 try {
4 SAXParserFactory factory = SAXParserFactory.newInstance();
5 SAXParser parser = factory.newSAXParser();
6 // 创建事件处理器
7 DefaultHandler dh = new DefaultHandler();
8 // 解析xml文档
9 parser.parse(new File(""), dh);
10 } catch (Exception e) {
11 e.printStackTrace();
12 }
13
14 // 2.DOM对象读取xml文档
15 // 为解析xml文档创建document对象
16 try {
17 DocumentBuilderFactory factory = DocumentBuilderFactory
18 .newInstance();
19 DocumentBuilder builder = factory.newDocumentBuilder();
20 org.w3c.dom.Document doc = builder.parse(new File(""));
21 // 初期化
22 doc.normalize();
23 // 获取节点信息
24 NodeList nodeList = doc.getElementsByTagName("name");
25
26 } catch (Exception e) {
27 e.printStackTrace();
28 }
29
30 //3.利用dom4j读取xml文档
31 try {
32 //creates a DOM4J tree from SAX parsing events
33 SAXReader reader = new SAXReader();
34 InputStream inputStream = Thread.currentThread()
35 .getContextClassLoader().getResourceAsStream("config.xml");
36 Document doc = reader.read(inputStream);
37 Element root = doc.getRootElement();
38 } catch (Exception e) {
39 e.printStackTrace();
40 }
41
42 //备注:用SAX读取xml文档要更快点,它允许用户在读取的时候对它进行处理,然而DOM对象需要在整个DOM树结构创建完了之后才能开始处理;
43 //但是DOM对象的Document对象里面的方法要比SAX解析后的Document对象里面的方法更加丰富,转换和处理的时候就更加容易了,对比2和3可一很容易看出。