`
xurichusheng
  • 浏览: 338371 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

使用JDOM解析XML文件

    博客分类:
  • jdom
阅读更多

 

附件为相应的代码及配置文件

 

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
 
分享到:
评论

相关推荐

    java 使用JDOM解析xml文件.docx

    Java 使用 JDOM 解析 XML 文件 Java 是一种广泛使用的程序设计语言,而 XML 是一种广泛使用的标记语言,用于存储和传输数据。在 Java 中,解析 XML 文件是一件常见的任务,而 JDOM 是一个流行的开源库,用于解析和...

    jdom解析xml文件小实例

    jdom解析xml文件小实例jdom解析xml文件小实例jdom解析xml文件小实例

    jdom解析xml文件

    jdom解析xml文件的源代码、jar包以及示例xml文件

    用jdom解析xml文件

    一个关于用jdom解析xml,遍历xml,建立xml的简单例子.

    利用JDOM解析xml文件

    利用JDOM解析xml文件,并根据xml中为类名,生成相应的对象。

    jdom解析XML文件and把字符串解析成XML

    jdom解析XML文件and把字符串解析成XML.txt jdom解析XML文件and把字符串解析成XML.txtjdom解析XML文件and把字符串解析成XML.txt

    Dom JDom 解析xml 文件

    Dom JDom 解析xml 文件 Dom JDom 解析xml 文件 Dom JDom 解析xml 文件 自己使用 最好不要下载

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

    使用JDM技术解析XML文档,在了解此程序前请到JDOM官网下载一个JDOM的类包,然后配置环境变量或者将类包连接到eclipse路径中,此程序完全可以运行,在压缩包中还包括原xml文档!!!请参考!

    jdom 读取XML 文件

    NULL 博文链接:https://zhaohong.iteye.com/blog/426761

    jdom解析xml、dtd约束xml文件

    这是一个jdom解析xml的小例子、里面还有dtd文件的编写以及dtd文件约束xml文件。这是一个jdom解析xml的小例子、里面还有dtd文件的编写以及dtd文件约束xml文件。这是一个jdom解析xml的小例子、里面还有dtd文件的编写...

    JDOM解析XML文档

    一份详细介绍了JDOM的基本结构和类。以及用JDOM解析XML文件时常用的方法。并举例进行说明。对于学习JDOM有很大的帮助。虽然是英文版,但是简单易通。初学者可以参考。

    Jdom解析xml案例

    Java中使用jdom解析xml的案例, 以及文档说明。

    java利用jdom解析xml文件

    xml样例 博文链接:https://jingrenlang.iteye.com/blog/356160

    jdom 解析 XML文件 java程序 存入Oracle数据库

    对于含有子节点的复杂的XML文件,可以采用jdom.jar来解析。 上传的文件包括程序,XML文件,jdom包,jdbc包 对于复杂的XML文件,可以采用层层解析,虽然方法不是很简便,但是,可以完成解析的任务,而且,准确率很高...

    jdom解析xml实例

    使用jdom解析xml的实例 包括生成新的xml文件,读取xml和修改xml 项目是myeclipse创建的

    java利用jdom读取xml文件

    利用jdom读取xml 虽然是我自己写的 但是觉得有必要与大家分享一下

    java 使用JDOM解析xml文件

    java中如何使用JDOM解析xml文件呢?以下小编就用实例为大家详细的介绍一下。需要的朋友可以参考下

    解析XML的JDOM的jar包

    解析XML的JDOM的jar包,只有引入这个包就可以解析xml了

    用jdom解析xml源代码资料

    用jdom解析xml源代码资料

Global site tag (gtag.js) - Google Analytics