`
JavaCrazyer
  • 浏览: 3008814 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类

JDOM使用示例

阅读更多

虽然前面的文章提到了JDOM在解析XML文件方面存在种种缺陷,但至少在一般的小文件来说还是可以考虑的,比如我的项目中用到的XML文件就很小很小

这里只需添加个jdom.jar包就够了,至于是哪个版本自己可以上网去下

TargetExcel.xml

<?xml version="1.0" encoding="gbk"?>
<linekong>
   <project name="CRM2001">
		<property name="x">0</property>
		<property name="y">2</property>
	</project>
	<project name="CRM2002">
		<property name="x">0</property>
		<property name="y">3</property>
	</project>
	<project name="CRM2003">
		<property name="x">0</property>
		<property name="y">4</property>
	</project>
	<project name="CRM3004">
		<property name="x">0</property>
		<property name="y">5</property>
	</project>
	<project name="CRM3005">
		<property name="x">0</property>
		<property name="y">6</property>
	</project>
	<project name="CRM3002">
		<property name="x">0</property>
		<property name="y">7</property>
	</project>
	<project name="CRM3003">
		<property name="x">0</property>
		<property name="y">8</property>
	</project>
	
	
	<project name="CRM4002">
		<property name="x">0</property>
		<property name="y">9</property>
	</project>
	<project name="CRM4008">
		<property name="x">0</property>
		<property name="y">10</property>
	</project>
	<project name="CRM4007">
		<property name="x">0</property>
		<property name="y">11</property>
	</project>
	<project name="CRM4005">
		<property name="x">0</property>
		<property name="y">12</property>
	</project>
	<project name="CRM4006">
		<property name="x">0</property>
		<property name="y">13</property>
	</project>
	<project name="CRM4001">
		<property name="x">0</property>
		<property name="y">14</property>
	</project>
	<project name="CRM3006">
		<property name="x">0</property>
		<property name="y">15</property>
	</project>
	
	<project name="TAG0001_01">
		<property name="x">0</property>
		<property name="y">16</property>
	</project>
	<project name="TAG0001_02">
		<property name="x">0</property>
		<property name="y">17</property>
	</project>
	<project name="TAG0002">
		<property name="x">0</property>
		<property name="y">19</property>
	</project>
	<project name="TAG0003">
		<property name="x">0</property>
		<property name="y">20</property>
	</project>
	<project name="TAG0004">
		<property name="x">0</property>
		<property name="y">21</property>
	</project>
	<project name="TAG0005">
		<property name="x">0</property>
		<property name="y">22</property>
	</project>
	<project name="TAG0006">
		<property name="x">0</property>
		<property name="y">23</property>
	</project>
	<project name="TAG0007">
		<property name="x">0</property>
		<property name="y">24</property>
	</project>
	<project name="TAG0008">
		<property name="x">0</property>
		<property name="y">25</property>
	</project>
	<project name="TAG0009">
		<property name="x">0</property>
		<property name="y">26</property>
	</project>
	<project name="TAG0010">
		<property name="x">0</property>
		<property name="y">27</property>
	</project>
	<project name="TAG0011">
		<property name="x">0</property>
		<property name="y">28</property>
	</project>
	<project name="TAG0012">
		<property name="x">0</property>
		<property name="y">29</property>
	</project>
	<project name="TAG0013">
		<property name="x">0</property>
		<property name="y">30</property>
	</project>
	<project name="TAG0014">
		<property name="x">0</property>
		<property name="y">31</property>
	</project>
	<project name="TAG0015">
		<property name="x">0</property>
		<property name="y">32</property>
	</project>
	<project name="TAG0016">
		<property name="x">0</property>
		<property name="y">33</property>
	</project>
	<project name="TAG0017">
		<property name="x">0</property>
		<property name="y">34</property>
	</project>
	<project name="TAG0018">
		<property name="x">0</property>
		<property name="y">35</property>
	</project>
	<project name="TAG0019">
		<property name="x">0</property>
		<property name="y">36</property>
	</project>
	<project name="TAG0020">
		<property name="x">0</property>
		<property name="y">37</property>
	</project>
	<project name="TAG0021">
		<property name="x">0</property>
		<property name="y">38</property>
	</project>
	
</linekong>

对应处理程序

 

package com.cn.util.common;

import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.log4j.Logger;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;

import com.cn.pojo.TargetExcelPojo;
import com.cn.util.timer.TestTimerTaskServlet;

/**
 * @author meisong
 * 这里用到的是JDOM技术
 */
public class PropertiesCache {
	private final static Logger log = org.apache.log4j.Logger
			.getLogger(PropertiesCache.class);
	private  Log logger = LogFactory.getLog(PropertiesCache.class);
	private Map cache;
	private static PropertiesCache instance = new PropertiesCache();

	public PropertiesCache() {
		cache = Collections.synchronizedMap(new HashMap());// �õ�һ��ͬ����HashMap
	}

	//���õ�̬
	public static PropertiesCache getInstance() {
		return instance;
	}

	public String getProperties(String projectName, String propertiesName) {
		String key = projectName + propertiesName;
		if (cache.containsKey(propertiesName)) {
			String properties = (String) cache.get(key);
			return properties;
		} else {
			//
			String properties = parseXML(projectName, propertiesName);
			cache.put(key, properties);
			return properties;
		}
	}

	private String parseXML(String projectName, String propertiesName) {
		logger.info("解析XML文件");
		SAXBuilder sb = new SAXBuilder();
		Document doc = null;
		try {
			// String home = System.getenv("TOMCAT_HOME");
			// System.out.println(home);

			// 读取应用配置文件
			// 用于读取同步指标数据
 			URL urlAppCfg = PropertiesCache.class.getClassLoader().getResource(
					"AppConfig.xml");
			doc = sb.build(urlAppCfg);
 			 System.out.println(doc.toString()+"---");
		} catch (IOException e) {
			log.error(e.getMessage() + "--");
		} catch (JDOMException e) {
			log.error(e.getMessage() + "--ww");
		}
		String value = null;
		Element root = doc.getRootElement();
		List projects = root.getChildren("project");
	
		for (int i = 0; i < projects.size(); i++) {
			Element project = (Element) projects.get(i);
			if (project.getAttributeValue("name").equals(projectName)) {
				List properties = project.getChildren("property");
				for (int j = 0; j < properties.size(); j++) {
					Element property = (Element) properties.get(j);
					if (property.getAttributeValue("name").equals(
							propertiesName)) {
						value = property.getText();
						break;
					}
				}
				break;
			}
		}
		return value;
	}


}

 

0
0
分享到:
评论

相关推荐

    jdom处理xml例子

    这个例子展示了如何使用JDOM读取、修改并保存XML文档。通过JDOM,我们可以轻松地处理XML数据,无论是简单的文档还是复杂的结构,都能得心应手。在实际项目中,根据需求选择适当的解析器,结合JDOM提供的API,可以...

    JDOM使用详解及实例

    JDOM 是一个专门为Java设计的XML处理库,它结合了SAX和DOM的优点,提供了一种高效且易于使用的API来创建、解析和操作XML文档。JDOM的主要目标是简化XML处理,通过利用Java语言的强大特性,如方法重载、集合和映射,...

    Jdom 操作的例子和包

    JDOM的核心理念是提供一个与平台无关、高性能、易于使用的API,让开发者能够以Java对象的形式来操作XML。 ### JDOM基本结构 JDOM的主要类包括`Element`、`Attribute`、`Document`和`Builder`。`Element`代表XML...

    JDOM使用详解及实例(解析xml).pdf

    在示例代码中,可以看到JDOM在创建和操作XML文档时的直观性。例如,通过new Element("GREETING")创建一个元素,并通过setText方法为其设置文本内容。然后可以将这个元素用作Document的根元素。通过newDocument()和...

    JDOM操作XML文件.doc

    下面是一个简单的 JDOM 使用示例,演示如何读写 XML 文件。在这个例子中,我们有一个名为 `MyXml.xml` 的 XML 文件,包含两个书籍条目,每个条目有书名、作者、出版社、价格和出版日期等信息。为了操作这个 XML 文件...

    JDOM帮助文档以及使用教程

    下面是一个简单的示例,展示如何使用JDOM创建一个XML文档: ```java import org.jdom2.Document; import org.jdom2.Element; public class JDOMExample { public static void main(String[] args) { // 创建...

    jdom.jar 分享

    以下是一个简单的JDOM示例,展示如何使用JDOM创建一个XML文档: ```java import org.jdom2.Document; import org.jdom2.Element; public class JDOMExample { public static void main(String[] args) { ...

    Jdom解析xml案例

    下面是一个简单的示例,展示如何使用JDOM解析和打印XML文档的元素信息: ```java import org.jdom2.*; import org.jdom2.input.SAXBuilder; import org.jdom2.output.Format; import org.jdom2.output.XMLOutputter...

    JDOM 介绍及使用

    #### 五、JDOM的使用示例 1. **文档创建**:可以通过`Document`类创建一个新的XML文档。 ```java Document doc = new Document(); Element root = new Element("root"); doc.setRootElement(root); ``` 2. **...

    使用JDOM解析XML文件

    下面是一个使用SAXBuilder解析XML文件的示例: ```java import org.jdom2.Document; import org.jdom2.input.SAXBuilder; public class JdomExample { public static void main(String[] args) { try { ...

    jdom 下载 jdom 下载

    以下是一个简单的例子,演示如何使用JDOM解析XML文件: ```java import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.input.SAXBuilder; public class JDomExample { public static void main...

    jdom-1.1.zip_java jdom_jdom-1.0.jar包_jdom-1.1_jdom-1.1.1.tar.gz

    在`www.pudn.com.txt`文件中,可能包含了一些关于这些JDOM版本的下载信息、教程链接或者使用示例,对于初学者来说是一个很好的参考资料。 总的来说,JDOM作为Java平台上的XML处理库,提供了简单而直接的API,使得...

    jdom-1.1.2&jdom帮助文档

    压缩包中的 `jdom.chm` 文件是 JDOM 的官方帮助文档,包含了详细的 API 参考、教程和示例。对于开发者来说,这是了解和学习 JDOM 的重要资源。文档详细解释了每个类、接口和方法的用法,帮助开发者快速上手。 总结...

    jdom.rar内含多个jdom包

    2. **例子**:这些示例代码通常展示了如何使用JDOM进行XML操作,包括解析XML文件、创建新的XML文档、修改现有文档、查询元素和属性等。通过学习这些例子,开发者可以快速上手并应用到自己的项目中。 3. **帮助文档*...

    jdom操作xml的文档

    以下是一个简单的例子,展示如何使用 JDOM 读取和写入 XML 文档。首先,我们有一个名为 `MyXml.xml` 的 XML 文件: ```xml &lt;书库&gt; &lt;书&gt; &lt;书名&gt;Java 编程入门书名&gt; &lt;作者&gt;张三作者&gt; &lt;出版社&gt;电子出版社出版社&gt; ...

    jdom-1.1.zip jdom-1.1.jar jdom.jar jdom库 jdom操作xml

    `jdom-1.1.zip`是这个版本的源代码或二进制包,通常包含库的jar文件、文档、示例代码等资源。`jdom-1.1.jar`则是JDOM-1.1的核心库文件,可以直接引入到Java项目中,以便进行XML操作。 在JDOM中,XML文档被表示为一...

    Jdom教程 Jdom教程.pdf

    以上示例演示了如何使用XPath表达式`//Class[@no='0212']/name`来获取指定班级的学生姓名。 #### 五、日志记录 程序中使用了`Logger`类来进行日志记录: ```java Logger log = Logger.getLogger(JdomDemo.class); `...

    JDom使用详解.doc

    尽管 JDom 的官方文档可能相对较少,但通过实践和示例代码,开发者可以深入理解其核心功能。 在 JDom 中,XML 文档的核心对象是 `Document`,它是整个 XML 结构的根。创建 XML 文档通常涉及到以下几个步骤: 1. **...

    jdom的使用(读取和写入)

    下面将详细介绍如何使用JDOM进行XML文件的读取和写入。 ### XML文件的读取 1. **引入JDOM库**:首先,你需要在项目中引入JDOM的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml ...

    jdom - 2.0.1

    - **jdom-2.0.1-contrib.jar**:可能包含了一些额外的贡献代码或示例。 - **lib**:可能是一个包含依赖库的目录,确保 JDOM 正常运行所需。 - **jdom-2.0.1-junit.jar**:可能包含了 JDOM 的测试框架和测试用例,...

Global site tag (gtag.js) - Google Analytics