虽然前面的文章提到了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;
}
}
分享到:
相关推荐
jdom处理xml例子
很好的JDOM使用详解及实例,大家可以下载试试。
Jdom 操作xml 对节点、对属性的添加,写入文件,等等
Java中使用jdom解析xml的案例, 以及文档说明。
包含jdom的jar包,及例子和帮助文档
一个简单的 JDOM解析本地XML 例子
这是一个jdom解析xml的小例子、里面还有dtd文件的编写以及dtd文件约束xml文件。这是一个jdom解析xml的小例子、里面还有dtd文件的编写以及dtd文件约束xml文件。这是一个jdom解析xml的小例子、里面还有dtd文件的编写...
关于XML中DOM解析的主要方法.其中有相关例子的说明。
jdom包 博文链接:https://seawavecau.iteye.com/blog/106922
这是我做的简单的一个在jsp中用jdom解析xml的程序。只是显示,添加等简单的功能,来学习学习jdom解析xml的程序。如果你想学习那这一定是个很好的例子
jdom解析xml文件的源代码、jar包以及示例xml文件
一个关于用jdom解析xml,遍历xml,建立xml的简单例子.
jdom读取xml详细例子,每句代码后面都有注释,详细的不能再详细啦!
jdom 解析xml存入hashmap的例子 ~~~
利用Jdom生成XML与解析XML的示例
jdom-2.0.5.jar 和 一个操作xml的源程序例子
dom4j和jdom解析XML小例子
这是一个利用JDOM解析XML的方法,虽然for循环比较繁琐,但是容易理解,有利于初学者学习