`

Java XML 简要读写工具

    博客分类:
  • Java
阅读更多
##这个工具类主要完成字符型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>
分享到:
评论

相关推荐

    27个java工具类

    以上仅为部分工具类的简要说明,实际的工具类可能会包含更多功能,如XML处理、线程控制、缓存管理等。这些工具类的使用能大大提高开发效率,降低代码的复杂性,使程序更易于维护。在使用时,根据具体需求选择合适的...

    java操作xml

    这里简要介绍如何使用W3C DOM API进行基本的XML读写操作。 **1. 读取XML文件** ```java DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory....

    31个java工具类大汇总

    Java的`java.io`包提供了对文件的基本操作,如读写文件、创建文件、删除文件、重命名文件等。此外,Apache Commons IO库中的`FileUtils`类提供了更多的高级功能,如复制、移动文件、清空目录等。 5. **XML操作**:...

    java 使用POI框架读写excel doc

    以上就是使用Java的Apache POI框架读写Excel和Word文档的基本操作。实际应用中,你可能需要处理更复杂的情况,如样式设置、公式计算、图表操作等,这都需要进一步学习POI提供的高级API。在实践中不断探索和学习,你...

    Java操作XML编程实例解析.txt

    一个简单的XML文件读写来作简要分析。可以在任何文本编辑器中先建立如下结构的XML文件,类似于HTML结构,但XML语义比较严格,起始标记必须配对,比如"〈学生花名册〉"与"〈/学生花名册〉"对应,空格多少可不必在意...

    Android中xml解析

    在Android开发中,XML(可扩展标记...XStream作为一种强大的工具,简化了XML和Java对象之间的转换,提高了开发效率。通过阅读“XStream两分钟教程”并结合实际项目,开发者可以快速掌握其使用技巧,提升XML处理的能力。

    Core Java. Volume II. Advanced Features, 8th Edition

    6. **XML处理**:介绍DOM、SAX和JAXB等处理XML文档的API,以及如何在Java中读写XML文件。 7. **数据库编程**:讲解JDBC基础,如何连接数据库、执行SQL语句,以及事务处理和结果集的处理。 8. **Java EE基础**:...

    doc2docx 文件类型转换 java后台

    Eclipse作为流行的Java集成开发环境,被选为开发工具,使得开发者能够方便地编译和运行代码。 在标题中提到的“doc文件转换docx文件”,涉及到了Microsoft Office的两种不同文件格式。DOC是早期的Word文档格式,而...

    JAVA-API-1.6中文文档.zip

    `README.txt`可能是对文档的简要介绍或使用指南,而`JAVA-API-1.6中文文档.CHM`是一个Windows帮助文件,通常以合璧文档(CHM)格式存储了完整的Java API参考文档,便于离线查阅。 通过深入学习和掌握Java API 1.6,...

    JAVA 入门简易教材

    JAVA的输入输出(IO)流系统用于读写数据,而NIO(New Input/Output)提供了更高效的数据传输方式。我们将了解如何使用FileInputStream、FileOutputStream以及BufferedReader、PrintWriter等类,以及NIO的基本概念。...

    21java.rar

    16. **Java EE基础知识**:简要介绍Java企业版,如Servlet、JSP和JDBC,为Web开发打下基础。 17. **数据库操作**:学习如何使用JDBC连接数据库,执行SQL语句,处理结果集。 18. **设计模式**:了解常见的设计模式...

    Java The Complete Reference 8ED. DOC

    16. **Java EE技术**:虽然不详尽,但书中可能简要介绍了Java企业版相关的Web开发和EJB概念。 通过学习《Java The Complete Reference》第八版,开发者不仅可以掌握Java 7的核心知识,还能了解到如何在实际项目中...

    基于Java的超市管理系统的设计与实现.pdf

    10. Java开发工具和历史:文件提到了JDK(Java Development Kit)、Java Plug-in、Netscape等,这些都是与Java开发相关的工具。文档还简要回顾了Java Web技术的发展历程,包括Servlet、JSP的出现、PHP和ASP的竞争,...

    jxl读写excel源码

    通过以上步骤,你应该能够使用jxl库在Java程序中实现基本的Excel读写操作。对于更复杂的需求,如处理图表、公式等,可以查阅jxl库的官方文档或相关教程进行深入学习。希望这个简要的指南能帮助初学者快速上手jxl库。

    Java完美编程(第三版).

    IO流和NIO(非阻塞I/O)是Java处理输入输出的重要工具,书中会介绍如何读写文件、网络通信以及使用缓冲区进行高效数据传输。同时,也会讲解多线程编程,包括线程的创建、同步机制和并发模型,这对于开发高性能、高...

    Java 2 Core Language Little Black Book.pdf

    - **附录C:Java虚拟机(JVM)**:简要介绍了JVM的工作原理和技术细节。 - **附录D:活动RFCs**:列出了与Java相关的活跃请求注解(Request for Comments),以便了解最新的标准和技术动态。 #### 四、核心知识点总结 ...

    core Java volume I英文版

    9. **JNI与JNI接口**:简要介绍Java Native Interface(JNI),用于在Java代码中调用本地(C/C++)代码,实现Java与其他语言的交互。 10. **标准库API**:对Java的标准库进行深入探索,如日期时间API、正则表达式、...

    java_doc_ppt转txt

    首先,我们需要了解Java中的关键库,如Apache POI,它是一个用于读写Microsoft Office格式文件的强大库。对于Word文档(.doc或.docx),Apache POI提供了HSSF和XSSF接口来处理旧版的二进制Excel格式和新的XML Excel...

    Java聊天源码

    2. **Socket通信流程**:在Java聊天应用中,服务器启动并监听端口,客户端尝试连接,连接成功后,双方都可以通过Socket对象的getInputStream()和getOutputStream()方法获取输入/输出流,然后读写数据。通常,服务器...

Global site tag (gtag.js) - Google Analytics