【学习笔记】JAVA读写XML
来源:互联网 发布:莫干黄芽茶 淘宝 编辑:程序博客网 时间:2024/06/11 18:38
要读的xml
<?xml version="1.0" encoding="GB2312"?><学生花名册><学生 性别 = "男"><姓名>李华</姓名><年龄>14</年龄></学生><学生 性别 = "男"><姓名>张三</姓名><年龄>16</年龄> </学生></学生花名册>
代码
import java.io.FileOutputStream;import java.io.OutputStreamWriter;import java.io.Writer;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_r("学生"); 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_r("姓名"); Element e = (Element) names.item(0); Node t = e.getFirstChild(); stu.setName(t.getNodeValue()); NodeList ages = ss.getElementsByTagName_r("年龄"); e = (Element) ages.item(0); t = e.getFirstChild(); stu.setAge(Integer.parseInt(t.getNodeValue())); students_Vector.add(stu); } return students_Vector; } // 写入xml文件 public static void callWriteXmlFile(Document doc, Writer w, String encoding) { try { Source source = new DOMSource(doc); Result result = new StreamResult(w); Transformer xformer = TransformerFactory.newInstance() .newTransformer(); xformer.setOutputProperty(OutputKeys.ENCODING, encoding); xformer.transform(source, result); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } } private void writeXMLFile(String outfile) { 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 { FileOutputStream fos = new FileOutputStream(outfile); OutputStreamWriter outwriter = new OutputStreamWriter(fos); // ((XmlDocument)doc).write(outwriter); //出错! callWriteXmlFile(doc, outwriter, "gb2312"); outwriter.close(); fos.close(); } catch (Exception e) { e.printStackTrace(); } } public static void main(String args[]) { String str = "xml/student.xml"; DomTest t = new DomTest(); 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 outfile = "xml/stucopy.xml"; t.writeXMLFile(outfile); }}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;} }
0 0
- JAVA学习笔记 -- 读写XML
- 【学习笔记】JAVA读写XML
- XML学习笔记(三)--Delphi读写XML
- XML学习笔记(四)--Delphi读写xml
- 安卓学习笔记--读写xml文件
- opencv学习笔记之xml文件读写
- Java & XML学习笔记
- java学习:使用dom4j读写xml文件
- XML学习笔记(五)--Delphi读写xml例子
- 读写xml笔记
- Java读写EXCEL(JXL)学习笔记
- Android学习笔记(八)之Android 读写xml文件
- opencv 2.x学习笔记(十一)读写xml文件
- opencv 学习笔记2—XML读写操作
- java操作xml学习笔记
- Java.Web学习笔记 XML
- java学习笔记--解析xml
- Java学习笔记之Xml
- urlrewrite地址重写的使用
- Qt入门(2)——使用Qt编写的Hello world
- css 滤镜效果
- poj-2342
- java比较两个日期之间月差值,日差值
- 【学习笔记】JAVA读写XML
- php curl模拟post请求提交数据例子总结
- [搜索] Compass整合Spring Hibernate配置
- REGEXP_LIKE判断汉字
- 序列化与反序列化
- Unity3D-深入剖析NGUI的游戏UI架构
- Java 构造函数的“继承”
- Android UI一致性
- qq 传输文件 ,为啥不经过qq协议 走了http呢?