DRP项目(七)----XML的四种解析器之DOM解析XML

来源:互联网 发布:php 授权验证系统源码 编辑:程序博客网 时间:2024/06/06 12:27
 

 我的xml文件代码:文件名:sys-config.xml

<?xml version="1.0" encoding="UTF-8"?><config>    <db-info>         <driver-name>oracle.jdbc.driver.OracleDriver</driver-name>        <url>jdbc:oracle:thin:@192.168.24.181:1521:BJPOWERNODE</url>        <user-name>drp1</user-name>         <password>drp1</password>    </db-info></config>

首先声明一下我在这只写读取过程中的简要原理,至于加上单例模式,这个自己可以加上,但是我写的是实现解析xml的原理。

这里只得到<driver-name>中的东西

DOM解析XML文档

 package com.bjpowernode.drp.util;  /**   * DOM实现读取配置文件   *    * */  import java.io.File;  import javax.xml.parsers.DocumentBuilder;     import javax.xml.parsers.DocumentBuilderFactory;    import org.w3c.dom.Document;    import org.w3c.dom.Element;    import org.w3c.dom.NodeList;    public class testXML {     public  static void main(String args[]) {          try {                    // 创建一个工厂实例                    DocumentBuilderFactory factory = DocumentBuilderFactory                            .newInstance();                    // 新建一个文档模板                    DocumentBuilder builder = factory.newDocumentBuilder();                    // 根据指定路径,创建一个文档对象                    Document document = builder.parse(new File("E:\\软件学习\\视频及相关学习\\2.动力节点_王勇_Java项目视频_DRP完整版\\DRP\\DRP\\drp2.4\\src\\sys-config.xml"));                    // 得到所有的文档内容,即得到文档的根节点                    Element rootElement = document.getDocumentElement();                    // 通过getElementsByTagName()方法,得到标签为author"的结点,                     //返回的是一个结点对象集                    NodeList list = rootElement.getElementsByTagName("db-info");                    // 得到对象集中的第一个结点对象,该对象包括自己的子结点对象                    Element authorElement = (Element) list.item(0);                    // 打印出节点author中的id属性值                    // System.out.println(authorElement.getAttribute("id"));                    // 得到标签为firstname的结点集                    NodeList nodeList = rootElement.getElementsByTagName("driver-name");                    // 打印出其文本节点的属性值.由于firstname节点的子节点即为所需要的文本节点,                    //所以当调用其子结点的值时会得到其文本属性值                    System.out.println(nodeList.item(0).getChildNodes().item(0).getNodeValue());                } catch (Exception e) {                    System.out.print(e.toString());                }      } }