`

使用JDom操作XML

    博客分类:
  • XML
阅读更多

global-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<sys-config>
    <jdbc-info>
        <driver-class-name>oracle.jdbc.driver.OracleDriver</driver-class-name>
        <url>jdbc:oracle:thin:@127.0.0.1:1521:xe</url>
        <username>scott</username>
        <password>tiger</password>
    </jdbc-info>
    <beans>
        <bean id="test" class="com.taoistwar.test.jdom.ReadXML"/>
    </beans>
</sys-config>

 

读取XML

com.taoistwar.test.jdom.GlobalConfig.java

package com.taoistwar.test.jdom;

import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.xpath.XPath;

public class GlobalConfig {
    private static GlobalConfig instance = new GlobalConfig();

    private static final String Config_File_Name = "global-config.xml";

    private Element rootELt;

    private JdbcInfo jdbcInfo = new JdbcInfo();

    private Map beanMap = new HashMap();
   
    private GlobalConfig() {
        SAXBuilder sb = new SAXBuilder();
        try {
            Document document = sb.build(Thread.currentThread()
                    .getContextClassLoader().getResourceAsStream(
                            Config_File_Name));
            this.rootELt = document.getRootElement();
            initJdbcInfo();
            initBeans();
        } catch (JDOMException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static GlobalConfig getInstance() {
        return instance;
    }

    public void initJdbcInfo() {
        try {
            Element driverClassNameElt = (Element) XPath.selectSingleNode(
                    this.rootELt, "//sys-config/jdbc-info/driver-class-name");
            jdbcInfo.setDriverClassName(driverClassNameElt.getText());
            Element urlElt = (Element) XPath.selectSingleNode(this.rootELt,
                    "//sys-config/jdbc-info/url");
            jdbcInfo.setUrl(urlElt.getText());
            Element usernameElt = (Element) XPath.selectSingleNode(
                    this.rootELt, "//sys-config/jdbc-info/username");
            jdbcInfo.setUsername(usernameElt.getText());
            Element passwordElt = (Element) XPath.selectSingleNode(
                    this.rootELt, "//sys-config/jdbc-info/password");
            jdbcInfo.setUrl(passwordElt.getText());
        } catch (JDOMException e) {
            e.printStackTrace();
        }
    }

    public void initBeans() {
        try {
            List list = (List) XPath.selectNodes(this.rootELt,
                    "//sys-config/beans/bean");
            for (Iterator iter = list.iterator(); iter.hasNext();) {
                Element elt = (Element) iter.next();
                String id = elt.getAttributeValue("id");
                String cls = elt.getAttributeValue("class");
                beanMap.put(id, Class.forName(cls).newInstance());
            }
        } catch (JDOMException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
    }

    public Object getBean(String id) {
        Object o = beanMap.get(id);
        return o;
    }
   
    public static void main(String[] args) {
        ReadXML r = (ReadXML) GlobalConfig.getInstance().getBean("test");
        r.p("test F");
    }

}

 

 

com.taoistwar.test.jdom.JdbcInfo.java

package com.taoistwar.test.jdom;

public class JdbcInfo {
    private String driverClassName;
    private String url;
    private String username;
    private String password;

    public JdbcInfo() {
        super();
    }

    public String getDriverClassName() {
        return driverClassName;
    }

    public void setDriverClassName(String driverClassName) {
        this.driverClassName = driverClassName;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

}

 

com.taoistwar.test.jdom.ReadXML

package com.taoistwar.test.jdom;

public class ReadXML {
    private String u = "tao";
    public void p(String str) {
        System.out.println(str);
        System.out.println(u);
    }
   
}

 

 

输出XML文件

com.taoistwar.test.jdom.XmlWriter

package com.taoistwar.test.jdom;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;

public class XmlWriter {
    public static void main(String[] args) throws FileNotFoundException, IOException {
        Element rootElt = new Element("selects");
        Element selElt = new Element("select");
        Element idElt = new Element("id");
        idElt.addContent("id1");
        Element valueElt = new Element("name");
        valueElt.addContent("name1");
        selElt.addContent(idElt);
        selElt.addContent(valueElt);
        rootElt.addContent(selElt);
        Document doc = new Document(rootElt);
        XMLOutputter out = new XMLOutputter();
        out.setFormat(Format.getCompactFormat().setEncoding("GBK"));;
        out.output(doc, new FileOutputStream("c:/t.xml"));
    }
}

 

分享到:
评论

相关推荐

    jdom 读取XML 文件

    本篇文章将深入探讨如何使用JDOM来读取XML文件。 首先,我们需要了解JDOM的基本概念。JDOM通过构建一棵DOM(Document Object Model)树来表示XML文档,这棵树是由节点构成的,包括元素(Element)、属性(Attribute...

    java利用jdom读取xml文件

    下面将详细介绍如何使用JDOM来读取XML文件。 首先,我们需要了解XML的基本概念。XML(eXtensible Markup Language)是一种标记语言,用于存储和传输结构化数据。它的结构清晰,易于人和机器理解,广泛应用于网络...

    使用JDOM解析XML文件

    在Java编程中,JDOM(Java Document Object Model)是处理XML的一种库,它提供了方便的方式来创建、修改和读取XML文档。本篇文章将深入探讨如何使用JDOM解析XML文件。 首先,我们需要理解JDOM的基本结构。JDOM通过...

    jdom学习读取xml文件.files

    本教程将深入探讨如何使用JDOM读取XML文件,并阐述其在Spring框架中的应用。 首先,我们了解JDOM的基本概念。JDOM提供了一种树型结构来表示XML文档,其中XML元素、属性、文本和注释等都对应于特定的Java对象。通过...

    JDOM读取XML,并且创建XML

    2. 使用`SAXBuilder`的`build`方法读取XML文件,返回一个`Document`对象。 3. 通过`Document`对象访问XML文档的元素和属性。 示例代码如下: ```java import org.jdom2.*; import org.jdom2.input.SAXBuilder; ...

    JAVA100例之实例71 使用JDOM操作XML

    JDOM是专门为Java设计的XML处理库,它提供了一个基于树型结构的API,使得开发者可以方便地创建、修改和读取XML文档。JDOM的优势在于它的性能高效且易于使用,特别是在处理小到中等规模的XML文档时。 二、XML文档...

    jdom读取xml全属性文件

    使用JDOM读取XML文件的第一步是引入相关的库。如果你使用的是Maven项目,需要在pom.xml文件中添加JDOM依赖: ```xml &lt;groupId&gt;org.jdom &lt;artifactId&gt;jdom2 &lt;version&gt;2.0.6 ``` 然后,我们可以编写Java代码来...

    java读取XML(JDOM)

    Java读取XML文件是开发过程中常见的任务,JDOM是一个用于处理XML文档的Java库,它提供了方便、高效的方式来创建和操作XML数据。本篇将详细讲解如何使用JDOM来读取XML文件,以及相关的源码解析。 首先,我们需要了解...

    jdom 读取修改xml文件

    JDOM 的设计非常直观且易于使用,尤其适合那些希望在 Java 程序中轻松操作 XML 的开发人员。 #### 使用 JDOM 读取 XML 文件 在本文提供的示例代码中,我们首先导入了必要的类库: ```java import java.io....

    java jdom解析xml

    - **优化策略**:如果确实需要处理大型XML文件,可以使用JDOM的SAXBuilder,它允许以SAX方式读取XML,但仍然使用JDOM API进行操作。 6. **示例代码** ```java import org.jdom2.Document; import org.jdom2....

    JDom 读写XML

    使用JDom读取XML文件通常涉及以下步骤: - 创建SAXBuilder实例。 - 调用`build()`方法,传入XML文件的输入流或文件路径,返回一个Document对象,表示整个XML文档。 - 通过Document对象获取根元素,然后可以遍历...

    java 使用JDOM解析xml文件.docx

    JDOM 是一个开源项目,基于树型结构,利用纯 Java 技术对 XML 文档实现解析、生成、序列化以及多种操作。JDOM 直接为 Java 编程服务,利用 Java 语言的诸多特性(方法重载、集合概念以及映射),把 SAX 和 DOM 的...

    JDOM操作xml文件的xmlBean

    ### JDOM操作XML文件的关键知识点 #### 一、JDOM简介 JDOM(Java Document Object Model)是一种基于Java的XML解析API,它提供了一种简便的方式来解析和操作XML文档。与传统的DOM相比,JDOM更加注重性能和易用性,...

    用JDOM读取XML文件

    用JDOM读取XML文件 用JDOM读取XML文件用JDOM读取XML文件

    使用Struts,jdom对xml数据进行操作

    2. **Action处理**:在Action类中,使用JDOM读取XML文件,获取或更新数据,然后将这些数据封装到ActionForm中。 3. **业务逻辑**:在业务层,可以编写方法处理XML数据,如查询、插入、更新和删除。 4. **显示数据**...

    用jdom解析xml

    JDOM是一个专门为Java设计的API,它提供了一种高效、方便的方式来构建和读取XML文档。在这个教程中,我们将深入探讨如何在JSP(JavaServer Pages)环境中使用JDOM解析XML。 **1. JDOM基本概念** JDOM的核心在于两...

    JDOM解析xml文档实例(自己编写,仅供参考)

    在这个例子中,我们将学习如何读取XML文件,创建一个`SAXBuilder`对象来构建XML文档的DOM(文档对象模型)表示,然后通过`Document`对象来访问和修改XML结构。 2. `sohuchannel.xml`:这是我们要解析的XML文件,可能...

    jdom 操作xml文档

    在实际开发中,使用JDOM操作XML文档可以极大地简化代码,提高效率。然而,需要注意的是,JDOM虽然简单易用,但在处理大型XML文件时可能会消耗大量内存。对于性能要求较高的场景,可以考虑使用SAX(Simple API for ...

    jdom处理xml例子

    通过JDOM,我们可以直接在内存中操作XML文档,这使得XML数据处理更加便捷。 **XML基础** XML(Extensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件和文档存储等领域。XML文档...

    用jdom解析xml文件

    3. 读取XML文件并构建DOM树:`File xmlFile = new File("path_to_xml_file"); Document document = saxBuilder.build(xmlFile);` 4. 获取根元素:`Element rootElement = document.getRootElement();` 5. 遍历元素...

Global site tag (gtag.js) - Google Analytics