`
lizhenbin2010
  • 浏览: 99677 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java创建xml与排序

    博客分类:
  • J2se
 
阅读更多

DOM创建xml

package com.lzb.model.xml;

import java.io.File;
import java.io.FileOutputStream;
import java.util.Map;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
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;

/**
 * 测试采用DOM的方式生成XML
 * @author lizhenbin
 *
 */
public class DomCreateXml {
	
	/**
	 * 参考
	 * @param obj
	 * @param path
	 * @return
	 */
	public static boolean domCreateXmlDoc() {
		
		try {
			/**
			 * 初始化
			 */
			Document doc = null;
			DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance();
			DocumentBuilder docBuilder = dbfactory.newDocumentBuilder();
			doc = docBuilder.newDocument();
			/**
			 * 创建XML的根节点(根)
			 */
			Element root = doc.createElement("xml_root"); //XML的根节点
			doc.appendChild(root);
			
			for(int i=0; i<3; i++) {
				String _s = "child_" + i;
				Element _child = doc.createElement(_s);
				root.appendChild(_child);
				for(int j=0; j<2; j++) {
					String _s_s = _s + "_" + j;
					Element _c_child = doc.createElement(_s_s);
					_c_child.appendChild(doc.createTextNode("城市编码: SN" + _s_s));
					_child.appendChild(_c_child);
				}
			}
			/**
			 * 结束拼凑XML
			 */
			TransformerFactory tff = TransformerFactory.newInstance();
			Transformer transformer = tff.newTransformer();
			/**
			 * xml输出的位置
			 */
			File file = new File("E://testcreate.xml");
			FileOutputStream out = new FileOutputStream(file);
			StreamResult xmlResult = new StreamResult(out);
			transformer.setOutputProperty(OutputKeys.INDENT, "yes");
			transformer.transform(new DOMSource(doc), xmlResult);
			
			return true;
			
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}
	}

}

 

SAX创建xml

package com.lzb.model.xml;

import java.io.File;
import java.io.FileOutputStream;
import java.io.StringWriter;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Result;
import javax.xml.transform.Transformer;
import javax.xml.transform.sax.SAXTransformerFactory;
import javax.xml.transform.sax.TransformerHandler;
import javax.xml.transform.stream.StreamResult;

import org.xml.sax.helpers.AttributesImpl;


/**
 * 测试才用SAX的方式生成XML
 * @author lizhenbin
 *
 */
public class SaxCreateXml {
	
	/**
	 * 
	 * 功能描述:
	 *
	 * @author  lizhenbin
	 * <p>创建日期 :May 8, 2012 7:09:13 PM</p>
	 *
	 * @throws Exception
	 *
	 * <p>修改历史 :(修改人,修改时间,修改原因/内容)</p>
	 */
	public static void saxCreateXmlDoc() throws Exception {
		
		String xmlStr = null;
		//String dstPath = ServletActionContext.getServletContext().getRealPath(this.getSavePath()) + "\\" + this.getUploadFileName();
		Result resultXml = new StreamResult(new FileOutputStream("E://sax_xml.xml"));
		StringWriter writerStr = new StringWriter();
		
		SAXTransformerFactory sff = (SAXTransformerFactory) SAXTransformerFactory.newInstance();
		TransformerHandler th = sff.newTransformerHandler();
		
		Transformer transformer = th.getTransformer();
		transformer.setOutputProperty(OutputKeys.INDENT, "yes");
		transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
		th.setResult(resultXml);	
		
		/**
		 * 拼凑xml, SAX的方式,每个都有开启和结束配对
		 */
		th.startDocument();
		AttributesImpl attr = new AttributesImpl();
		th.startElement("", "", "root", attr);   //根节点
		for(int i=0; i<2; i++) {
			String _c = "child_" + i;
			th.startElement("", "", _c, attr);
			for(int j=0; j<3; j++) {
				String _c_c = _c + "_" +j;
				th.startElement("", "", _c_c, attr);
				for(int k=0; k<2; k++) {
					String _c_c_c = _c_c + "_" + k;
					String txt = "城市编号:" + _c_c_c;
					th.startElement("", "", _c_c_c, attr);
					th.characters(txt.toCharArray(), 0, txt.length());
					th.endElement("", "", _c_c_c);
				}
				th.endElement("", "", _c_c);
			}
			th.endElement("", "", _c);
		}
		th.endElement("", "", "root");
		th.endDocument();
		
//		th.startDocument();
//		AttributesImpl attr = new AttributesImpl();
//		th.startElement("", "", "xmlroot", attr);   //根节点
//		th.startElement("", "", "child", attr); //孩子
//		
//		th.startElement("", "", "context", attr); //内容
//		String content1 = "北京";
//		th.characters(content1.toCharArray(), 0, content1.length());
//		th.endElement("", "", "context");
//		
//		th.startElement("", "", "context", attr); //内容
//		String content2 = "上海";
//		th.characters(content2.toCharArray(), 0, content2.length());
//		th.endElement("", "", "context");
//		
//		th.endElement("", "", "child");
//		th.endElement("", "", "xmlroot");
//		th.endDocument();
		
		/**
		 * 结束
		 */
		xmlStr = writerStr.getBuffer().toString();
		
		//return xmlStr;
	}
}

 

最后补充一下排序算法,主要是因为我创建xml的时候,想自己写个方法排序

package com.lzb.model.sort;
/**
 * 
 * 功能描述:排序
 *
 * @author  Administrator
 *
 * <p>修改历史:(修改人,修改时间,修改原因/内容)</p>
 */
public class SortAlgorithm {
	
	/**
	 * 
	 * 功能描述:冒泡排序算法(稳定)
	 * 			假设有N个数据需要排序,则从第0个数开始,依次比较第0和第1个数据,
				如果第0个大于第1个则两者交换,否则什么动作都不做,继续比较第1个第2
				个…,这样依次类推,直至所有数据都“冒泡”到数据顶上。
	 *
	 * @author  Administrator
	 * <p>创建日期 :2012-3-16 下午4:27:20</p>
	 *
	 *
	 * <p>修改历史 :(修改人,修改时间,修改原因/内容)</p>
	 */
	public void bubbleSort(int[] targets) {
		
		boolean flag;
		for(int i=0; i<targets.length-1; i++) {
			flag = true;
			for(int j=0; j<targets.length-i-1; j++) {			
				if(targets[j] > targets[j+1]) {
					int temp = targets[j];
					targets[j] = targets[j+1];
					targets[j+1] = temp;
					flag = false;
				}
			}
			if(flag==true)
				break;
		}		
		for(Integer i : targets) {
			System.out.print(i + " ");
		}
	}
	
	/**
	 * 
	 * 功能描述:选择排序算法(不稳定)
	 * 			假设有N条数据,则暂且标记第0个数据为MIN(最小),使用OUT标记最左
				边未排序的数据,然后使用IN标记第1个数据,依次与MIN进行比较,如果比
				MIN小,则将该数据标记为MIN,当第一轮比较完后,最终的MIN与OUT标记
				数据交换,依次类推;
	 *
	 * @author  Administrator
	 * <p>创建日期 :2012-3-16 下午5:21:23</p>
	 *
	 *
	 * <p>修改历史 :(修改人,修改时间,修改原因/内容)</p>
	 */
	public void selectSort(int[] targets) {
		
		boolean flag;
		for(int i=0; i<targets.length-1; i++) {	
			flag = true;
			for(int j=i+1; j<targets.length; j++) {
				if(targets[i] > targets[j]) {
					int temp = targets[j];
					targets[j] = targets[i];
					targets[i] = temp;
					flag = false;
				}
			}
			if(flag==true)
				break;
		}		
		for(Integer i : targets) {
			System.out.print(i + " ");
		}		
	}
/*	
	/**
	 * 
	 * 功能描述:插入排序算法(稳定)
	 * 			插入排序是在部分数据有序的情况下,使用OUT标记第一个无序的数据,将
				其提取保存到一个中间变量temp中去,使用IN标记空位置,依次比较temp中
				的值与IN‐1的值,如果IN‐值大于temp的值,则后移,直到遇到第一个比temp
				小的值,在其下一个位置插入;
	 *
	 * @author  Administrator
	 * <p>创建日期 :2012-3-18 下午2:27:16</p>
	 *
	 * @param targets
	 *
	 * <p>修改历史 :(修改人,修改时间,修改原因/内容)</p>
	 */
	public void InsertionSort(int[] targets) {
		
	}
*/	
	public static void main(String[] args) {
		
		SortAlgorithm sort = new SortAlgorithm();
		int[] _istore =  {4,2,3,0,1,3,-2,10};
		sort.selectSort(_istore);
		System.out.println("\n--------------------------");
		sort.bubbleSort(_istore);
	}
}

 

分享到:
评论

相关推荐

    对xml文件进行解析+排序+生成文件

    1. 定义一个接口处理文件,参数分别是列表文件路径和结果文件路径。 2. 将每个步骤单独写一个子方法,如解析xml,排序,写文件等等。

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...

    java操作xml

    这是一个完整的案例,内容包括java读取xml、创建xml、对xml内容排序

    java实验 排序GUI

    java实验 内容是有关排序的GUI 欢迎下载修改

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...

    java常用代码

    7.ImageThumbnail.java 生成图片缩略图 8.JsonObjs.java json简单操作 9.HttpProxy.java 代理设置 10.CaptureScreen.java 截取桌面 11.XmlReaer.java 读写xml文件 12.ArrayConvers.java 数组与map/list的转换 13....

    JAVA上百实例源码以及开源项目源代码

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    JAVA上百实例源码以及开源项目

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    java-xml-to-json::alien_monster:将XML转换为保留结构的JSON表示形式

    大多数XML到JSON实现的问题是,我们丢失了许多有关排序/属性/其他信息。 另一个动机是对XML进行轻量级序列化,因为完整的转换。 我们权衡一些可读性以减少字节数。 结果JSON字符串的字节大小通常比其XML兄弟大一些...

    java面试题库2021.pdf

    目录 一、 JavaSE 部分 1、 Java 基础 ①Java 基础部分(基本语法, Java 特性等) ...2、 创建型模式 ①单例模式 3、 行为型模式 ①策略模式 ②观察者模式 4、 所有模式汇总 十、 场景题 十一、 UML

    java开源包4

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包11

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包101

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包6

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    gir2java:尝试从 GObject Introspection XML 文件创建 Java 绑定源

    这是一个实验性的解析器和生成器,它从 .gir XML 文件创建 Java 绑定源。 用于解析 XML。 生成的 Java 代码是使用构建和导出的。 使用的本机互操作性库是 。 地位 目前,gir2java 能够: 为 .girs 中的和元素生成...

    java开源包9

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java jdk实列宝典 光盘源代码

    17 java与xml 用dom处理xml文档; 用sax处理xml文档; 用xslt转换xml; 对象与xml的转换; 18 java mail 使用smtp协议发送简单邮件; 发送带附件的邮件; 给多人发送邮件; 使用pop3接收邮件; 19jsp与servlet 获取客户端...

Global site tag (gtag.js) - Google Analytics