附件为相应的代码及配置文件
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 文件 Java 是一种广泛使用的程序设计语言,而 XML 是一种广泛使用的标记语言,用于存储和传输数据。在 Java 中,解析 XML 文件是一件常见的任务,而 JDOM 是一个流行的开源库,用于解析和...
在这个例子中,我们将深入探讨如何使用JDOM解析XML文件,并进行遍历与构建。 首先,我们需要了解JDOM的基本概念。JDOM主要由三部分构成:SAXBuilder用于从XML源构建DOM树,Element代表XML文档的元素,Attribute代表...
以上就是使用JDOM解析XML文件的基本流程和关键知识点。通过JDOM,你可以轻松地处理XML文档,无论是读取还是修改,都变得轻而易举。在实际开发中,掌握XML和JDOM的操作对于处理结构化数据和接口通信至关重要。
在这个小实例中,我们将深入探讨如何使用JDOM解析XML文件。 首先,我们需要引入JDOM的依赖。在Java项目中,如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.jdom <artifactId>...
1. `JDOMUtil.java`:这是一个Java类,包含了使用JDOM解析XML的主要代码。在这个例子中,我们将学习如何读取XML文件,创建一个`SAXBuilder`对象来构建XML文档的DOM(文档对象模型)表示,然后通过`Document`对象来...
**JDOM解析XML文件** XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件和文档存储等领域。在Java中,JDOM(Java Document Object Model)是一个流行的选择来解析和操作...
本篇文章将深入探讨如何利用JDOM解析XML文件,并基于XML中的类名生成相应的对象。 首先,我们需要理解JDOM的基本概念。JDOM提供了一组Java对象来表示XML文档,包括Element(元素)、Attribute(属性)、Text(文本...
Java JDOM解析XML是Java开发中处理XML文档的一种方法,JDOM全称为Java Document Object Model,它是一个基于Java语言的API,用于创建、修改和读取XML文档。JDOM为XML处理提供了一种高效且方便的解决方案,尤其适用于...
下面通过一个具体的例子来展示如何使用JDOM解析XML文件。 假设我们有如下的XML文件(`example.xml`): ```xml <?xml version="1.0" encoding="UTF-8"?> 张三 <age>30 李四 <age>25 ``` #### 1. ...
通过上述步骤,你就能使用JDOM有效地读取、解析和修改XML文件了。这个库提供了丰富的功能,能够满足大部分XML处理需求,同时它的API简洁直观,使得开发人员能快速上手。在实际应用中,结合JDOM与其他工具,如XPath...
使用JDOM解析XML文档通常包括以下几个步骤: 1. 创建`SAXBuilder`实例,这是JDOM提供的解析器,可以将XML输入源转换为`Document`对象。 2. 使用`SAXBuilder`的`build`方法读取XML文件,生成`Document`对象。 3. ...
这个JSP页面首先解析XML文件,显示其顶级元素,然后以格式化的形式输出整个XML文档。 **7. 性能考虑** 虽然JDOM提供了易用性,但它的性能可能不如其他XML解析器如DOM4J或StaX。在处理大型XML文件时,应考虑这些...
接下来,我们将通过一个简单的示例来展示如何使用JDOM解析XML文件。假设我们有一个名为`example.xml`的文件,内容如下: ```xml <?xml version="1.0" encoding="UTF-8"?> <title>Java编程思想 布鲁斯·艾克 ...
综上所述,使用JDOM解析XML文件并将其内容导出到TXT文件,主要涉及XML的读取、遍历和内容输出。通过JDOM,你可以方便地处理XML的结构、元素、属性等信息,为Java应用程序提供灵活的数据处理能力。在实际应用中,可以...
以下是一个简单的示例代码,演示了如何使用JDOM解析XML文件: ```java import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.input.SAXBuilder; import java.io.File; public class ...
要使用JDOM解析XML,首先需要将JDOM的jar文件(如jdom.jar)添加到项目的类路径中。此外,由于XML解析通常涉及到其他库,如XPath解析和DTD处理,我们看到压缩包中还包含了一些其他相关的jar文件: 1. xalan.jar:...
### JDOM解析XML文档 #### 一、JDOM概述与特点 JDOM(Java Document Object Model)是一款专为Java优化的开源XML数据处理库。它虽然与W3C的DOM标准相似,但作为DOM的一种替代方案,JDOM并不是基于DOM构建的,也...
这是一个jdom解析xml的小例子、里面还有dtd文件的编写以及dtd文件约束xml文件。这是一个jdom解析xml的小例子、里面还有dtd文件的编写以及dtd文件约束xml文件。这是一个jdom解析xml的小例子、里面还有dtd文件的编写...