`

java dom方法生成xml,少量数据时,可以使用

阅读更多

 

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;


public class WriteXml{	
	
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public void generateXML() throws ParserConfigurationException, IOException, TransformerException{
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		DocumentBuilder builder = factory.newDocumentBuilder();
		Document document = builder.newDocument();
		//根结点
		Element root = document.createElement("Message"); 
		root.setAttribute("MsgID", "SWPM001");
		root.setAttribute("ResourceID", "SW");
		document.appendChild(root);
		//取得数据
		List<Map> data = this.queryStockInventory();
		for (int i=0;i<data.size();i++) {
			Map<String, String> rec = data.get(i);
			//行结点
			Element dataRow = document.createElement("DataRow"); 
			dataRow.setAttribute("id", String.valueOf(i));
			root.appendChild(document.createTextNode("\n	"));//缩进
			root.appendChild(dataRow);		
			//数据结点
			Iterator it = rec.entrySet().iterator();
			while(it.hasNext()){
				Map.Entry<String, String> entry = (Map.Entry<String, String>)it.next();
				//用字段名作为标签名,对应的数据作为内容 
				Element field = document.createElement(entry.getKey());
				field.appendChild(document.createTextNode(entry.getValue()));
				dataRow.appendChild(document.createTextNode("\n		"));//缩进
				dataRow.appendChild(field);
			}
			dataRow.appendChild(document.createTextNode("\n	"));//缩进
		}
		TransformerFactory tf = TransformerFactory.newInstance();
		Transformer transformer = tf.newTransformer();
		transformer.setOutputProperty(OutputKeys.ENCODING, "GB2312");
		transformer.setOutputProperty(OutputKeys.INDENT, "yes");
		//文件名 
		StringBuffer fileName = new StringBuffer("d:\\SWPM001_");
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
		fileName.append(sdf.format(new Date())).append(".xml");		
		PrintWriter pw = new PrintWriter(new FileOutputStream(fileName.toString()));
		StreamResult result = new StreamResult(pw);
		DOMSource source = new DOMSource(document);
		transformer.transform(source, result);
	}
	
	
	@SuppressWarnings("rawtypes")
	private List queryStockInventory() {
		StringBuffer insertInto = new StringBuffer();	
		insertInto.append("SELECT *")				
				.append(" FROM table")
				.append(" WHERE  rownum<=10"); //库存数量
		return _dao.query(insertInto.toString());
	}
}
分享到:
评论

相关推荐

    详解Java解析XML的四种方法

    通过注解和代码生成工具,JAXB可以将XML schema映射到Java类,从而实现自动化的序列化和反序列化。 总结,选择哪种XML解析方法取决于具体的应用场景和需求。如果需要对小型到中型的XML文档进行随机访问和修改,DOM...

    详解XML各种解析方法

    在选择解析方法时,开发人员面临着两个基本选择: 1. **使用现成的解析库**:几乎所有编程语言都有现成的解析库可供使用,甚至包括一些传统的语言如COBOL。 2. **自定义解析器**:理论上,可以通过正则表达式或其他...

    基于xml的Ajax

    - Server-side脚本(如PHP、Python、Java等):处理Ajax请求,生成XML响应。 通过分析这些文件,你可以深入学习如何在实际项目中使用Ajax与服务器进行XML数据交换,以及如何在前端解析和处理这些数据,从而提升网页...

    XLStoXML2.0 (转换器Java)

    "lib"目录下可能包含转换器运行所需要的第三方库文件,这些库可能包含了XML解析、Excel读取等功能的支持,如Apache POI库用于读取Excel文件,JAXB或DOM4J库用于生成XML文档。 使用XLStoXML2.0通常涉及以下步骤: 1....

    AJAX的简单应用(GSON、XML)

    2. **解析XML**:在JavaScript中,可以使用`DOMParser`对象解析XML字符串,生成DOM树,然后通过DOM API操作XML数据。 3. **XMLHttpRequest与XML**:发送XML请求时,可以设置`responseType`为"document",使服务器...

    ajax DOM hibernate jquery jsp [baidu百科集合]

    它通过在后台与服务器进行少量数据交换,使网页实现异步更新。这一技术的核心是JavaScript,它利用XMLHttpRequest对象与服务器进行通信,接收或发送数据。Ajax可以创建更加用户友好的交互式网页,提高用户体验,减少...

    基于Ajax的Java Web应用的研究与开发.pdf

    Ajax(Asynchronous JavaScript and XML)是一种新的Web数据交互方法,能够实现异步数据交换,提供响应更及时的用户体验。Ajax技术的核心是XMLHttpRequest对象,该对象可以在客户端和服务器端之间传输少量的信息,...

    基于java的AJAX例子

    在Java环境下,我们可以使用Servlet、JSP或Spring MVC等框架来处理AJAX请求。以下是一个简单的Servlet示例: ```java import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; ...

    Java学习Ajax的小例子

    4. **DOM操作**:在JavaScript的回调函数中,你会解析Servlet返回的数据(可能是XML、JSON或其他格式),然后使用DOM(Document Object Model)API来更新网页的特定部分。例如,你可能要在某个div元素中插入新的文本...

    基于java的Ajax教程

    - 监听状态变化:使用`onreadystatechange`事件处理函数检查请求状态,当状态变为4(完成)且状态码为200(成功)时,处理服务器返回的数据。 **4. JSP和Servlet处理请求** 在服务器端,我们通常使用Servlet来处理...

    Java理论与实践:用XQuery进行屏幕搜集

    JTidy工具包在这方面表现突出,它可以解析质量较差的HTML并生成符合XML规范的DOM。 清单1展示了如何使用JTidy将HTML转换为XML DOM,从而允许通过XPath或XQuery进行后续处理。虽然XPath也是提取数据的有效工具,但...

    java综合知识点总结

    12. Ajax总结:Ajax(异步JavaScript和XML)技术通过在后台与服务器进行少量数据交换,实现了网页的部分更新,提升了用户体验。 13. JSP九大隐式对象中四个作用域的大小与作用范围:page, request, session, ...

    AJAX编程技术与实例(java)源代码下载

    2. **JSON与XML数据格式**:虽然名字中有XML,但现代AJAX更多地使用JSON(JavaScript Object Notation)作为数据交换格式,因为它更轻量、解析更快。当然,XML也可能被用到,尤其是在需要跨平台或与老系统兼容时。 ...

    ajax java 典型实例下载

    Java中的org.json库可以方便地处理JSON数据的生成和解析。 3. **Servlet**:Java Servlet是服务器端的Java应用程序,用于接收和处理客户端的HTTP请求。在Ajax应用中,Servlet处理来自前端的Ajax请求,进行业务逻辑...

    SpringMVC注解和Spring框架是页面使用js—jquery—ajax—使用JSON传输数据时必备的包.rar

    5. **Ajax**:Asynchronous JavaScript and XML(异步JavaScript和XML)是一种在后台与服务器进行少量数据交换的技术,使得网页可以实现局部刷新,提升用户体验。在SpringMVC中,Ajax请求通常用于无刷新地更新视图...

    java知识点总结java知识点总结.doc

    GET是HTTP请求的一种方法,用于从服务器获取数据,参数在URL中可见,适合少量数据传输,不安全且有长度限制。POST则将数据放在请求体中,适合大量或敏感数据传输,相对GET更安全,但可能导致缓存问题。 3. Java...

    在eclipse上用JAVA实现AJAX插件

    2. 可以创建自定义的Java类,例如`MyWidget.java`,实现UI组件,并使用GWT的`DOM`或`UIBinder`来构建界面。 3. 使用`com.google.gwt.http.client.RequestBuilder`类实现异步请求,向服务器发送数据并接收响应。 **...

    ajax的jsp实例

    这通常涉及到使用Java的DOM或SAX API来解析和生成XML。 **四、MyEclipse工程背景** MyEclipse是一款集成开发环境,专为Java EE应用程序开发设计。在这个环境中,你可以创建和运行JSP项目,调试Ajax代码,并且方便地...

    JSON+AJAX,JSON,AJAX,JAVA ,教程,手册,入门,文档,json.pdf

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,但也使用了类似于C家族语言(包括C、C++、C#、Java、JavaScript、Perl、Python等)的习惯,这使得JSON对于程序员...

    用于Java应用程序的Ajax简介

    它通过在后台与服务器进行少量数据交换,使网页实现异步更新。这种技术可以提升用户体验,使得网页交互更加流畅,减少了用户等待时间。在Java应用程序中,Ajax的应用非常广泛,特别是在Web开发中,例如基于Java的...

Global site tag (gtag.js) - Google Analytics