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); } }