生成xml选择直接输出字符串(不生成文件)和生成文件
来源:互联网 发布:linux 目录权限 编辑:程序博客网 时间:2024/05/16 08:41
import java.io.ByteArrayOutputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStreamWriter;import java.io.PrintWriter;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import javax.xml.transform.OutputKeys;import javax.xml.transform.Result;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerConfigurationException;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;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import org.xml.sax.SAXException; class XmlImpl{ private Document document; public void init() { try { DocumentBuilderFactory factory = DocumentBuilderFactory .newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); this.document = builder.newDocument(); } catch (ParserConfigurationException e) { System.out.println(e.getMessage()); } } public void createXml(String fileName) { Element root = this.document.createElement("scores"); this.document.appendChild(root); Element employee = this.document.createElement("employee"); Element name = this.document.createElement("name"); name.appendChild(this.document.createTextNode("wangchenyang")); employee.appendChild(name); Element sex = this.document.createElement("sex"); sex.appendChild(this.document.createTextNode("m")); employee.appendChild(sex); Element age = this.document.createElement("age"); age.appendChild(this.document.createTextNode("26")); employee.appendChild(age); root.appendChild(employee); TransformerFactory tf = TransformerFactory.newInstance(); try { Transformer transformer = tf.newTransformer(); DOMSource source = new DOMSource(document); transformer.setOutputProperty(OutputKeys.ENCODING, "gb2312"); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); //直接输出字符串,不写入文件 ByteArrayOutputStream outStream = new ByteArrayOutputStream(); OutputStreamWriter write = new OutputStreamWriter(outStream); Result result = new StreamResult(write); Transformer xformer = TransformerFactory.newInstance() .newTransformer();// xformer.setOutputProperty(OutputKeys.ENCODING, "gb2312"); xformer.setOutputProperty(OutputKeys.STANDALONE, "yes"); xformer.transform(source, result); System.out.println(outStream.toString()); //生成文件 PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));// StreamResult result = new StreamResult(pw); transformer.transform(source, result); System.out.println("生成XML文件成功!"); } catch (TransformerConfigurationException e) { System.out.println(e.getMessage()); } catch (IllegalArgumentException e) { System.out.println(e.getMessage()); } catch (FileNotFoundException e) { System.out.println(e.getMessage()); } catch (TransformerException e) { System.out.println(e.getMessage()); } } public void parserXml(String fileName) { try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document document = db.parse(fileName); NodeList employees = document.getChildNodes(); for (int i = 0; i < employees.getLength(); i++) { Node employee = employees.item(i); NodeList employeeInfo = employee.getChildNodes(); for (int j = 0; j < employeeInfo.getLength(); j++) { Node node = employeeInfo.item(j); NodeList employeeMeta = node.getChildNodes(); for (int k = 0; k < employeeMeta.getLength(); k++) { System.out.println(employeeMeta.item(k).getNodeName() + ":" + employeeMeta.item(k).getTextContent()); } } } System.out.println("解析完毕"); } catch (FileNotFoundException e) { System.out.println(e.getMessage()); } catch (ParserConfigurationException e) { System.out.println(e.getMessage()); } catch (SAXException e) { System.out.println(e.getMessage()); } catch (IOException e) { System.out.println(e.getMessage()); } }}public class xmLTest { public static void main(String args[]){ XmlImpl dd=new XmlImpl(); String str="D:/grade.xml"; dd.init(); dd.createXml(str); //创建xml dd.parserXml(str); //读取xml }}
0 0
- 生成xml选择直接输出字符串(不生成文件)和生成文件
- 字符串生成xml文件
- 字符串xml生成xml文件
- 动态生成的字符串输出xml文件并下载
- XML文件生成和解析
- dom4j-xml字符串生成XML文件
- ASE如何直接访问文件和直接生成文件
- 如何用ASP.Net從數据庫取數据生成并成送XML數据(不生成XML文件)?
- 不生成core文件
- java生成xml文件
- dom4j生成xml文件
- c# 生成 xml 文件
- PHP 生成 XML文件
- C#生成XML文件
- C#生成XML文件
- TinyXML生成xml文件
- 生成一个xml文件
- StAX 生成XML文件
- 页面编码与表单编码不一致解决办法
- 网络流 Dinic算法求最大流模板
- java统计网站访问量
- PHP中 include,include_once,require,require_once的比较
- JNI 调用dll
- 生成xml选择直接输出字符串(不生成文件)和生成文件
- wince wifi使能禁用的实现
- JAVA中的IO系统详解
- c++11中的tuple(元组)
- servlet中实现页面转发
- Android Mms专题之:Mms源码结构
- leetcode Next Permutation
- 责任链模式
- 使用命令行编译Qt Android apps