利用JDom读XML

本文介绍了一个Java程序如何从XML配置文件中读取数据库连接信息及Bean定义,并通过JDOM库进行解析的过程。
在项目的src目录下建立一个gobal-configure.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<sys-configure>
<jdbc-info>
<driver-class>oracle.jdbc.driver.OracleDriver
</driver-class>
<url>jdbc:orcale:thin:@localhost:1521:zzg
</url>
<username>root</username>
<password>123456</password>
</jdbc-info>
<beans>
<bean id="com.yx.zzg.dao.UserDao" class="com.yx.dao.impl.UserDaoImpl" />
<bean id="com.yx.zzg.dao.ItemDao" class="com.yx.dao.impl.ItemDaoImpl" />
</beans>
</sys-configure>

读取xml

package com.yx.zzg.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 ReadXML {
private static ReadXML instance = new ReadXML();
private static final String fileName = "gobal-configure.xml";
Map<String, Object> map = new HashMap<String, Object>();
private Element rootElt;

private ReadXML() {
SAXBuilder sb = new SAXBuilder();
try {
Document doc = sb.build(Thread.currentThread()
.getContextClassLoader().getResourceAsStream(fileName));
rootElt = doc.getRootElement();
initJdbc();
initBean();
} catch (JDOMException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

public static ReadXML getInstance() {
return instance;
}

private void initJdbc() {
try {
Element driverElt = (Element) XPath.selectSingleNode(rootElt,
"//sys-configure/jdbc-info/driver-class");
System.out.println(driverElt.getText());
Element urlElt = (Element) XPath.selectSingleNode(rootElt,
"//sys-configure/jdbc-info/url");
System.out.println(urlElt.getText());
} catch (JDOMException e) {
e.printStackTrace();
}
}

private void initBean() {
try {
List list = XPath
.selectNodes(rootElt, "//sys-configure/beans/bean");
for (Iterator<List> it = list.iterator(); it.hasNext();) {
Element element = (Element) it.next();
String id = element.getAttributeValue("id");
String className = element.getAttributeValue("class");
Object obj = Class.forName(className).newInstance();
map.put(id, obj);
}
} catch (JDOMException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public Object getBean(Class c) {
return map.get(c.getName());
}
}
(Mathcad+Simulink仿真)基于扩展描述函数法的LLC谐振变换器小信号分析设计内容概要:本文围绕“基于扩展描述函数法的LLC谐振变换器小信号分析设计”展开,结合Mathcad与Simulink仿真工具,系统研究LLC谐振变换器的小信号建模方法。重点利用扩展描述函数法(Extended Describing Function Method, EDF)对LLC变换器在非线性工作条件下的动态特性进行线性化近似,建立适用于频域分析的小信号模型,并通过Simulink仿真验证模型准确性。文中详细阐述了建模理论推导过程,包括谐振腔参数计算、开关网络等效处理、工作模态分析及频响特性提取,最后通过仿真对比验证了该方法在稳定性分析与控制器设计中的有效性。; 适合人群:具备电力电子、自动控制理论基础,熟悉Matlab/Simulink和Mathcad工具,从事开关电源、DC-DC变换器或新能源变换系统研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握LLC谐振变换器的小信号建模难点与解决方案;②学习扩展描述函数法在非线性系统线性化中的应用;③实现高频LLC变换器的环路补偿与稳定性设计;④结合Mathcad进行公式推导与参数计算,利用Simulink完成动态仿真验证。; 阅建议:建议者结合Mathcad中的数学推导与Simulink仿真模型同步学习,重点关注EDF法的假设条件与适用范围,动手复现建模步骤和频域分析过程,以深入理解LLC变换器的小信号行为及其在实际控制系统设计中的应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值