生成xml格式文件
来源:互联网 发布:windows内核对象 编辑:程序博客网 时间:2024/06/09 20:40
要读的xml文件
<?xml version="1.0" encoding="GB2312"?><学生花名册> <学生 性别 = "男"> <姓名>李华</姓名> <年龄>14</年龄> </学生> <学生 性别 = "男"> <姓名>张三</姓名> <年龄>16</年龄> </学生></学生花名册>
import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.InputStream;import java.io.OutputStreamWriter;import java.util.Iterator;import java.util.Vector;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.OutputKeys;import javax.xml.transform.Result;import javax.xml.transform.Source;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.w3c.dom.Text;public class DomTest { Vector students_Vector; private Vector readXMLFile(String file) throws Exception { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = dbf.newDocumentBuilder(); Document doc = builder.parse(file); // 获取到xml文件 // 下面开始读取 Element root = doc.getDocumentElement(); // 获取根元素 NodeList students = root.getElementsByTagName("学生"); students_Vector = new Vector(); for (int i = 0; i < students.getLength(); i++) { // 一次取得每一个学生元素 Element ss = (Element) students.item(i); // 创建一个学生的实例 student stu = new student(); stu.setSex(ss.getAttribute("性别")); NodeList names = ss.getElementsByTagName("姓名"); Element e = (Element) names.item(0); Node t = e.getFirstChild(); stu.setName(t.getNodeValue()); NodeList ages = ss.getElementsByTagName("年龄"); e = (Element) ages.item(0); t = e.getFirstChild(); stu.setAge(Integer.parseInt(t.getNodeValue())); students_Vector.add(stu); } return students_Vector; } /** * 功能:直接提取XML格式字符串中的信息 */ private Vector readXMLString(String xmlStr) throws Exception { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = dbf.newDocumentBuilder(); InputStream inputStream = new ByteArrayInputStream(xmlStr.getBytes()); Document doc = builder.parse(inputStream); // // 下面开始读取 Element root = doc.getDocumentElement(); // 获取根元素 NodeList students = root.getElementsByTagName("学生"); students_Vector = new Vector(); for (int i = 0; i < students.getLength(); i++) { // 一次取得每一个学生元素 Element ss = (Element) students.item(i); // 创建一个学生的实例 student stu = new student(); stu.setSex(ss.getAttribute("性别")); NodeList names = ss.getElementsByTagName("姓名"); Element e = (Element) names.item(0); Node t = e.getFirstChild(); stu.setName(t.getNodeValue()); NodeList ages = ss.getElementsByTagName("年龄"); e = (Element) ages.item(0); t = e.getFirstChild(); stu.setAge(Integer.parseInt(t.getNodeValue())); students_Vector.add(stu); } return students_Vector; } // 将Document内容 写入XML字符串并返回 private String callWriteXmlString(Document doc, String encoding) { try { Source source = new DOMSource(doc); ByteArrayOutputStream outStream = new ByteArrayOutputStream(); OutputStreamWriter write = new OutputStreamWriter(outStream); Result result = new StreamResult(write); Transformer xformer = TransformerFactory.newInstance() .newTransformer(); xformer.setOutputProperty(OutputKeys.ENCODING, encoding); xformer.transform(source, result); return outStream.toString(); } catch (TransformerConfigurationException e) { e.printStackTrace(); return null; } catch (TransformerException e) { e.printStackTrace(); return null; } } /** * 功能:生成XML格式的字符串 */ public String writeXMLString() { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = null; try { builder = dbf.newDocumentBuilder(); } catch (Exception e) { } Document doc = builder.newDocument(); Element root = doc.createElement("学生花名册"); doc.appendChild(root); // 将根元素添加到文档上 // 获取学生信息 for (int i = 0; i < students_Vector.size(); i++) { student s = (student) students_Vector.get(i); // 创建一个学生 Element stu = doc.createElement("学生"); stu.setAttribute("性别", s.getSex()); root.appendChild(stu);// 添加属性 // 创建文本姓名节点 Element name = doc.createElement("姓名"); stu.appendChild(name); Text tname = doc.createTextNode(s.getName()); name.appendChild(tname); // 创建文本年龄节点 Element age = doc.createElement("年龄"); stu.appendChild(age); // 将age添加到学生节点上 Text tage = doc.createTextNode(String.valueOf(s.getAge())); age.appendChild(tage); // 将文本节点放在age节点上 } try { String result = callWriteXmlString(doc, "gb2312"); return result; } catch (Exception e) { e.printStackTrace(); return null; } } /** * 主函数 */ public static void main(String args[]) { String str = "xml\\student.xml"; DomTest t = new DomTest(); System.out.println("解析原始XML文件:"); try { Vector v = t.readXMLFile(str); Iterator it = v.iterator(); while (it.hasNext()) { student s = (student) it.next(); System.out.println(s.getName() + "\t" + s.getAge() + "\t" + s.getSex()); } } catch (Exception e) { e.printStackTrace(); } String xmlStr = t.writeXMLString(); System.out.println("\n生成的XML字符串:\n" + xmlStr); try { Vector v = t.readXMLString(xmlStr); Iterator it = v.iterator(); System.out.println("\n解析生成的XML字符串:"); while (it.hasNext()) { student s = (student) it.next(); System.out.println(s.getName() + "\t" + s.getAge() + "\t" + s.getSex()); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }}class student { private String sex; private String name; private int age; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void setSex(String s) { sex = s; } public String getSex() { return sex; } public void setName(String n) { name = n; } public String getName() { return name; }}
输出:
解析原始XML文件:李华 14 男张三 16 男生成的XML字符串:<?xml version="1.0" encoding="GB2312" standalone="no"?><学生花名册><学生 性别="男"><姓名>李华</姓名><年龄>14</年龄></学生><学生 性别="男"><姓名>张三</姓名><年龄>16</年龄></学生></学生花名册>解析生成的XML字符串:李华 14 男张三 16 男
1 0
- VB生成xml格式文件...
- java 生成xml格式文件
- java 生成xml格式文件
- 生成xml格式文件
- java 生成xml格式文件
- 利用jdom生成xml格式文件
- 数据集生成Xml 格式文件
- python生成xml格式文件实例
- 生成和解析XML格式文件
- java使用jdom生成xml格式文件
- java使用jdom生成xml格式文件
- Java生成和解析XML格式文件和字符串
- 读取XML格式文件内容
- XML 格式文件读取
- XML格式文件解析
- XML格式文件下载
- PHP生成utf8格式文件
- Python--生成Wav格式文件
- java下的zving旧框架使用经验
- 全局组,通用组,和域本地组的区别
- 数据结构笔记之----查找
- hls流媒体:ts流格式介绍
- HDU1106 排序
- 生成xml格式文件
- Java中HashMap遍历的两种方式
- logback简介
- IOS开发系列—Objective-C之Foundation框架
- ISO swift下XML数据解析
- PagerSlidingTabStrip源码分析
- elasticsearch在windows下的安装
- 编程打印三角形数字图案.java
- 华为S2403H做镜像端口