附件为相应的代码及配置文件
1、使用的jar包: jdom.jar xerces.jar log4j-1.2.8.jar
2、log4j.properties
#error/warn/info/debug#
log4j.rootLogger=warn, stdout
#log4j.rootLogger=warn, stdout, file
#to console#
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %l - %m%n
log4j.appender.stdout.layout.ConversionPattern=%r %d{yyyy-MM-dd HH:mm:ss} [%p] -%l -%n -%m%n
log4j.logger.java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=DEBUG
#to file#
# 文件大小到达指定尺寸的时候产生新文件
#log4j.appender.file=org.apache.log4j.RollingFileAppender
#log4j.appender.file.Append=true
#log4j.appender.R.Threshold=info
#log4j.appender.file.File=${webApp.root}/WEB-INF/logs/app.log
#
#log4j.appender.file.MaxFileSize=1024KB
#log4j.appender.file.MaxBackupIndex=100
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%r %d{yyyy-MM-dd HH:mm:ss} [%p] -%l -%n -%m%n
# 那些包路径需要打印日志
log4j.category.com.java=debug
#log4j.category.com.iss.test=debug
3、sms.xml
<?xml version="1.0" encoding="UTF-8"?>
<req>
<sp_id>qidi</sp_id>
<sp_pwd>qidi123</sp_pwd>
<phone>15902843301</phone>
<content>短信内容</content>
<time_stamp>201203281726</time_stamp>
<sender>106586282010</sender>
<serviceId>family</serviceId>
</req>
4、实体类
/**
* @ClassName: SMSBean
* @Description: 短信内容
* @author
* @date 2012-5-9 上午9:37:17
* @version V1.0
*/
public class SMSBean {
/** 服务提供商ID */
private String spID;
/** 服务提供商密码 */
private String spPWD;
/** 下发手机号(发送人手机号) */
private String phone;
/** 短信内容 */
private String content;
/** 下发时间(yyyyMMddHHmmss) */
private String timeStamp;
/** 下发端口 */
private String sendPort;
/** 业务代码 */
private String serviceID;
// 省略getter/setter 方法
}
5、解析方法
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import org.apache.log4j.Logger;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
/**
* @ClassName: XMLMethods
* @Description: XML文件操作类
* @author
* @date 2012-5-9 上午9:36:23
* @version V1.0
*/
public final class XMLMethods {
private static final Logger LOG = Logger.getLogger(XMLMethods.class);
private XMLMethods() {
}
/** xml文件存放路径 */
private static final String SMS_XML_PATH = "sms.xml";
/**
* @Title: readSMSXML
* @Description: 使用jdom解析XML
* @return SMSBean
* @author
* @date 2012-5-9
*/
public static SMSBean readSMSXML() {
InputStreamReader isr = null;
try {
// 获取要读取的文件的输入流
InputStream is = XMLMethods.class.getClassLoader()
.getResourceAsStream(SMS_XML_PATH);
/** 为防止乱码,使用 UTF-8 进行编码 */
isr = new InputStreamReader(is, "UTF-8");
} catch (UnsupportedEncodingException e) {
LOG.error("unsupport UTF-8 encoding!", e);
} catch (Exception e) {
LOG.error("occur others Exception!", e);
}
// 使用字符缓冲读取
BufferedReader bufferReader = new BufferedReader(isr);
// 使用JDOM的SAXBuilder解析器
SAXBuilder builder = new SAXBuilder();
Document doc = null;
try {
// 构建一个JDOM的Document
doc = builder.build(bufferReader);
} catch (JDOMException e) {
LOG.error("create Document faile!", e);
} catch (Exception e) {
LOG.error("occur others Exception!", e);
}
// 根元素
Element root = doc.getRootElement();
// 短信内容实体类
SMSBean sms = new SMSBean();
/** 获取xml文件中的元素 */
Element spID = root.getChild("sp_id");
if (null != spID) {
sms.setSpID(spID.getTextTrim());
}
Element spPWD = root.getChild("sp_pwd");
if (null != spPWD) {
sms.setSpPWD(spPWD.getTextTrim());
}
Element phone = root.getChild("phone");
if (null != phone) {
sms.setPhone(phone.getTextTrim());
}
Element content = root.getChild("content");
if (null != content) {
sms.setContent(content.getTextTrim());
}
Element timeStamp = root.getChild("time_stamp");
if (null != timeStamp) {
sms.setTimeStamp(timeStamp.getTextTrim());
}
Element sendPort = root.getChild("sender");
if (null != sendPort) {
sms.setSendPort(sendPort.getTextTrim());
}
Element serviceID = root.getChild("serviceId");
if (null != serviceID) {
sms.setServiceID(serviceID.getTextTrim());
}
return sms;
}
}
6、测试方法
public static void main(String[] args) {
SMSBean sms = readSMSXML();
if (null != sms) {
System.out.println(sms.getSpID());
System.out.println(sms.getSpPWD());
System.out.println(sms.getPhone());
System.out.println(sms.getContent());
System.out.println(sms.getTimeStamp());
System.out.println(sms.getSendPort());
System.out.println(sms.getServiceID());
} else {
System.out.println("read "+SMS_XML_PATH+" faile!");
}
}
7、测试结果
qidi
qidi123
15902843301
短信内容
201203281726
106586282010
family
分享到:
相关推荐
基于openocd开源工具实现的C#桌面应用工具
精品-2025人工智能神经网络基本原理解析.pdf
施耐德ATV312变频器通过MCGS RTU通讯实现双机监控与控制的触摸屏集成解决方案,无PLC的施耐德ATV312变频器通讯示例:触摸屏控制监控两台变频器,功能多且省成本,改进型可调整步长 P&O MPPT(二区MPPT复现),光储系统MPPT 直流负载供电的单级离网光伏系统中,降压转器将太阳能光伏阵列和直流负载连接起来,同时确保最大功率点跟踪(MPPT) 和电池充电控制的良好运行。 在MPPT方面,提出了一种改进的自适应步长扰动观测(P&O)方法,以达到不同天气条件下太阳能光伏阵列的实际最大功率点(MPP),同时减少稳态振荡和功率损耗。 此外,电池充电控制侧使用三级充电控制器 (TSCC) 为铅酸电池站充电。 ,改进型P&O; 复现二区MPPT; 光储系统MPPT; 最大功率点跟踪(MPPT); 步长扰动观测; 降压转换器; 太阳能光伏阵列; 电池充电控制; 三级充电控制器(TSCC); 铅酸电池站。,改进型P&O MPPT技术,光储系统高效能量管理
redis学习脑图笔记
大学生创业项目源码
Spring Boot企业员工管理系统(包含万字论文+MYSQL)
对应博客地址:https://blog.csdn.net/u011561335/article/details/146312389
相关文章:https://blog.csdn.net/liu_23yanfeng/article/details/146319189
从春晚看科技技术-陈雄 - 公开版本.pptx
在计算机上安装制造装备物联及生产管理ERP系统软件来发挥其高效地信息处理的作用,可以规范信息管理流程,让管理工作可以系统化和程序化,同时,制造装备物联及生产管理ERP系统的有效运用可以帮助管理人员准确快速地处理信息。 制造装备物联及生产管理ERP系统在对开发工具的选择上也很慎重,为了便于开发实现,选择的开发工具为Eclipse,选择的数据库工具为Mysql。以此搭建开发环境实现制造装备物联及生产管理ERP系统的功能。其中管理员管理用户,新闻公告。 制造装备物联及生产管理ERP系统是一款运用软件开发技术设计实现的应用系统,在信息处理上可以达到快速的目的,不管是针对数据添加,数据维护和统计,以及数据查询等处理要求,制造装备物联及生产管理ERP系统都可以轻松应对。 关键词:制造装备物联及生产管理ERP系统;SpringBoot框架,系统分析,数据库设计
传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,问卷信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能满足广大用户的需求,因此就应运而生出相应的问卷调查系统。 本问卷调查系统分为管理员还有用户两个权限,管理员可以管理用户的基本信息内容,可以管理新闻资讯信息以及新闻资讯的租赁信息,能够与用户进行相互交流等操作,用户可以查看问卷信息,可以查看新闻资讯以及查看管理员回复信息等操作。 该问卷调查系统采用的是WEB应用程序开发中最受欢迎的B/S三层结构模式,使用占用空间小但功能齐全的MySQL数据库进行数据的存储操作,系统开发技术使用到了JSP技术。该问卷调查系统能够解决许多传统手工操作的难题,比如数据查询耽误时间长,数据管理步骤繁琐等问题。总的来说,问卷调查系统性能稳定,功能较全,投入运行使用性价比很高。 关键词:问卷调查系统;MySQL数据库;SSM技术
VID20250317191237.mp4
西门子S7-1511 PLC PID控制阀门开度与模拟量转换——博途WinCC监控画面程序实践,西门子S7-1511 PLC PID控制阀门开度与模拟量转换——博途WinCC监控画面程序实践,matlab验证码识别系统,基于数字图像处理实现。 经过对图像的预处理、二值化、区域剪裁、数字定位、模板匹配法识别数字。 有gui界面和测试图像数据集。 ,核心关键词:Matlab验证码识别系统; 数字图像处理; 图像预处理; 二值化; 区域剪裁; 数字定位; 模板匹配法识别; GUI界面; 测试图像数据集。,基于Matlab的数字图像处理验证码识别系统
内容概要:本文提供了详细的 VMware 虚拟机安装指南,涵盖软件选择(Pro 和 Player 版区别)、安装步骤(适用于 Windows 和 Linux 主机系统)、虚拟机创建以及操作系统安装指导。详细介绍了配置虚拟机的各项关键设置,如资源分配、硬件参数定制、安装 VMware Tools 提升虚拟机性能和稳定性。并且列出了快照、克隆等高级功能的具体应用,还包括共享文件夹配置和几种常见错误的排除解决方案。 适合人群:初次接触虚拟化的用户和对虚拟环境搭建有一定兴趣的技术爱好者。 使用场景及目标:帮助用户快速部署自己的虚拟机,并掌握虚拟环境中常见的配置技巧,能够针对具体应用场景灵活地调整虚拟机的相关参数,提高工作效率,满足测试、学习、开发的需求。 其他说明:提供了一些安装过程可能遇到的问题及对应解决方案,在创建和维护过程中给予指导性的意见来确保用户的使用体验尽可能顺畅无阻,并给出了部分性能优化建议。
Matlab开发初学者视频教程,零基础入门,非常适合初学者。
质子交换膜燃料电池(PEMFC)Simulink模型:静态与动态模型分析及参数计算,基于Simulink的质子交换膜燃料电池模型:静态和动态模拟,计算输出和效率,cst仿真超表面 极化复用 ,核心关键词: 1. CST仿真 2. 超表面 3. 极化复用 以上信息以分号隔开,即为“CST仿真;超表面;极化复用”。,CST仿真超表面极化复用技术
PEMFC的Simulink静态与动态模型:输出电压、功率、效率等多维度性能计算指南,质子交换膜燃料电池Simulink模型:涵盖静态与动态特性,全面计算输出性能与效率,附参考公式与文献指南,C#运动控制系统源码。 雷赛运动控制卡控制系统。 像高川控制卡、高川控制器、或者固高运动控制卡以及正运动控制器、正运动控制卡可以用这个框架,自己替一下库文件等代码就可以。 功能丰富,注释多,非常适合新手学习,也可以做框架。 ,核心关键词:C#运动控制系统源码; 雷赛运动控制卡控制系统; 高川控制卡/高川控制器/固高运动控制卡; 正运动控制器/正运动控制卡; 功能丰富; 注释多; 新手学习; 框架。,C#雷赛运动控制系统源码框架:通用控制卡编程指南
xilinx RFSOC 相关论文和资料
美赛源码