##这个工具类主要完成字符型XML的读取和把对象转换成XML的操作
工具类
package cn.net.jk.common.utils;
import java.io.StringReader;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathFactory;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import bsh.This;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
public class XMLHelper {
private static Log logger = LogFactory.getLog(This.class);
XPath xpath = null;
org.w3c.dom.Document doc = null;
public XMLHelper(String xmlStr) {
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
doc = db.parse(new InputSource(new StringReader(xmlStr)));
xpath = XPathFactory.newInstance().newXPath();
} catch (Exception e) {
logger.error(e);
}
}
/**
* XML生成方法,可以把对象转换成XML 生成的根名称是类名
*
* @param o
* @return
*/
public synchronized static String objectToXml(Object o) {
String xml = "";
try {
XStream xStream = new XStream(new DomDriver());
xStream.alias(o.getClass().getSimpleName(), o.getClass());
xml = xStream.toXML(o);
} catch (Exception e) {
logger.error(e);
}
return xml;
}
public String getNodeValue(String nodePath)throws Exception{
String returnvalue = "";
try {
returnvalue=(String)xpath.evaluate(nodePath, doc, XPathConstants.STRING);
} catch (Exception e) {
logger.error(e);
}
return returnvalue;
}
public NodeList getNodeList(String nodeName){
NodeList cusinfoList = null;
try {
cusinfoList=(NodeList)xpath.evaluate(nodeName, doc, XPathConstants.NODESET);
} catch (Exception e) {
logger.error(e);
}
return cusinfoList;
}
public String getNodeValueFromNode(String nodePath,Node node)throws Exception{
try {
System.out.println("node:"+node);
return xpath.evaluate(nodePath, node);
} catch (Exception e) {
logger.error(e);
}
return "";
}
}
使用例子
//初始化工具类,XmlStr是外部传入
XMLHelper helper = new XMLHelper(XmlStr);
try {
//获取属性
System.out.println(helper.getNodeValue("/NodeCondition/nodeCode"));
//获取列表数据
NodeList nl = helper.getNodeList("/NodeCondition/contacts/cn.net.withub.smsp.orm.dc.ContactMan");
//循环获取列表中详细属性
for(int j=0;j<nl.getLength();j++){
Node node=nl.item(j);
String phoneNumber = helper.getNodeValueFromNode("phoneNumber", node);
System.out.println("phoneNumber:"+phoneNumber);
}
} catch (Exception e) {
e.printStackTrace();
}
例子XML
<NodeCondition>
<contacts>
<cn.net.withub.smsp.orm.dc.ContactMan>
<userName>a1</userName>
<userType>1</userType>
<phoneNumber>190000000</phoneNumber>
</cn.net.withub.smsp.orm.dc.ContactMan>
<cn.net.withub.smsp.orm.dc.ContactMan>
<userName>a2</userName>
<userType>3</userType>
<phoneNumber>190000003</phoneNumber>
</cn.net.withub.smsp.orm.dc.ContactMan>
</contacts>
<nodeCode>SP2001</nodeCode>
<isSpecialSned>0</isSpecialSned>
</NodeCondition>
分享到:
相关推荐
以上仅为部分工具类的简要说明,实际的工具类可能会包含更多功能,如XML处理、线程控制、缓存管理等。这些工具类的使用能大大提高开发效率,降低代码的复杂性,使程序更易于维护。在使用时,根据具体需求选择合适的...
这里简要介绍如何使用W3C DOM API进行基本的XML读写操作。 **1. 读取XML文件** ```java DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory....
Java的`java.io`包提供了对文件的基本操作,如读写文件、创建文件、删除文件、重命名文件等。此外,Apache Commons IO库中的`FileUtils`类提供了更多的高级功能,如复制、移动文件、清空目录等。 5. **XML操作**:...
以上就是使用Java的Apache POI框架读写Excel和Word文档的基本操作。实际应用中,你可能需要处理更复杂的情况,如样式设置、公式计算、图表操作等,这都需要进一步学习POI提供的高级API。在实践中不断探索和学习,你...
一个简单的XML文件读写来作简要分析。可以在任何文本编辑器中先建立如下结构的XML文件,类似于HTML结构,但XML语义比较严格,起始标记必须配对,比如"〈学生花名册〉"与"〈/学生花名册〉"对应,空格多少可不必在意...
在Android开发中,XML(可扩展标记...XStream作为一种强大的工具,简化了XML和Java对象之间的转换,提高了开发效率。通过阅读“XStream两分钟教程”并结合实际项目,开发者可以快速掌握其使用技巧,提升XML处理的能力。
6. **XML处理**:介绍DOM、SAX和JAXB等处理XML文档的API,以及如何在Java中读写XML文件。 7. **数据库编程**:讲解JDBC基础,如何连接数据库、执行SQL语句,以及事务处理和结果集的处理。 8. **Java EE基础**:...
Eclipse作为流行的Java集成开发环境,被选为开发工具,使得开发者能够方便地编译和运行代码。 在标题中提到的“doc文件转换docx文件”,涉及到了Microsoft Office的两种不同文件格式。DOC是早期的Word文档格式,而...
`README.txt`可能是对文档的简要介绍或使用指南,而`JAVA-API-1.6中文文档.CHM`是一个Windows帮助文件,通常以合璧文档(CHM)格式存储了完整的Java API参考文档,便于离线查阅。 通过深入学习和掌握Java API 1.6,...
JAVA的输入输出(IO)流系统用于读写数据,而NIO(New Input/Output)提供了更高效的数据传输方式。我们将了解如何使用FileInputStream、FileOutputStream以及BufferedReader、PrintWriter等类,以及NIO的基本概念。...
16. **Java EE基础知识**:简要介绍Java企业版,如Servlet、JSP和JDBC,为Web开发打下基础。 17. **数据库操作**:学习如何使用JDBC连接数据库,执行SQL语句,处理结果集。 18. **设计模式**:了解常见的设计模式...
16. **Java EE技术**:虽然不详尽,但书中可能简要介绍了Java企业版相关的Web开发和EJB概念。 通过学习《Java The Complete Reference》第八版,开发者不仅可以掌握Java 7的核心知识,还能了解到如何在实际项目中...
10. Java开发工具和历史:文件提到了JDK(Java Development Kit)、Java Plug-in、Netscape等,这些都是与Java开发相关的工具。文档还简要回顾了Java Web技术的发展历程,包括Servlet、JSP的出现、PHP和ASP的竞争,...
通过以上步骤,你应该能够使用jxl库在Java程序中实现基本的Excel读写操作。对于更复杂的需求,如处理图表、公式等,可以查阅jxl库的官方文档或相关教程进行深入学习。希望这个简要的指南能帮助初学者快速上手jxl库。
IO流和NIO(非阻塞I/O)是Java处理输入输出的重要工具,书中会介绍如何读写文件、网络通信以及使用缓冲区进行高效数据传输。同时,也会讲解多线程编程,包括线程的创建、同步机制和并发模型,这对于开发高性能、高...
- **附录C:Java虚拟机(JVM)**:简要介绍了JVM的工作原理和技术细节。 - **附录D:活动RFCs**:列出了与Java相关的活跃请求注解(Request for Comments),以便了解最新的标准和技术动态。 #### 四、核心知识点总结 ...
9. **JNI与JNI接口**:简要介绍Java Native Interface(JNI),用于在Java代码中调用本地(C/C++)代码,实现Java与其他语言的交互。 10. **标准库API**:对Java的标准库进行深入探索,如日期时间API、正则表达式、...
首先,我们需要了解Java中的关键库,如Apache POI,它是一个用于读写Microsoft Office格式文件的强大库。对于Word文档(.doc或.docx),Apache POI提供了HSSF和XSSF接口来处理旧版的二进制Excel格式和新的XML Excel...
2. **Socket通信流程**:在Java聊天应用中,服务器启动并监听端口,客户端尝试连接,连接成功后,双方都可以通过Socket对象的getInputStream()和getOutputStream()方法获取输入/输出流,然后读写数据。通常,服务器...