要读的xml文件

李华姓名>

14年龄>

学生>

张三姓名>

16年龄>

学生>

学生花名册>

package xml;

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

}

java 写入xml文件_java读写xml文件相关推荐

  1. JAVA编程TXT文件_java读写txt文件的方法

    java读写txt文件的方法 发布时间:2020-06-26 15:54:02 来源:亿速云 阅读:111 作者:Leah 本篇文章为大家展示了java读写txt文件的方法,代码简明扼要并且容易理解, ...

  2. java dbf文件_Java读写dbf文件

    展开全部 Java读取DBF文件,需要加载开源jar包JavaDBF.jar,然后使用62616964757a686964616fe4b893e5b19e31333337613133里面的方法进行读写 ...

  3. java资源文件获取属性_Java读写资源文件类Properties

    Java中读写资源文件最重要的类是Properties 1) 资源文件要求如下: 1.properties文件是一个文本文件 2.properties文件的语法有两种,一种是注释,一种属性配置. 注  ...

  4. JAVA之NIO按行读写大文件,完美解决中文乱码问题

    JAVA之NIO按行读写大文件,完美解决中文乱码问题 参考文章: (1)JAVA之NIO按行读写大文件,完美解决中文乱码问题 (2)https://www.cnblogs.com/jpfss/p/89 ...

  5. python不同数据的读入_python读写不同编码txt文件_python读写txt文件

    python读写不同编码txt文件_python读写txt文件 以后整理规范 [python] view plaincopy import os import codecs filenames=os. ...

  6. java 导出本地xml文件_java导出xml文件

    JDOM 文档声明其目的是"使用 20%(或更少)的精力解决 80%(或更多)Java/XML 问题"(根据学习曲线假定为 20%).JDOM 对于大多数 Java/XML 应用程 ...

  7. java xsd 解析 xml文件_Java针对XSD文件验证XML文件的最佳方法是什么?

    小编典典 Java运行时库支持验证.上次我检查的是幕后的Apache Xerces解析器.你可能应该使用javax.xml.validation.Validator. import javax.xml ...

  8. Java对dat文件内容进行查询_java读写dat文件

    Java的输入输出包括字节流.文件流和对象流等,要注意区分不同流使用的不同类.字... Java的输入输出包括字节流.文件流.对象流等,要注意区分不同流使用的不同类.字... 使用二进制 I/O 将 ...

  9. java file rename 失败_java重命名文件造成文件不可读写

    我想使用java代码对nginx日志文件进行拆分,但是我发现代码执行之后,拆分出来的日志文件没有读写权限,查看文件属性,显示的很诡异: 点击高级按钮,显示你没有权限查看或者编辑这个对象的权限设置: 反 ...

最新文章

  1. 数据缺失、混乱、重复怎么办?最全数据清洗指南
  2. Android自定义组件
  3. Spring事务原理,Java开发岗还不会这些问题
  4. shell开发跳板机功能脚本
  5. 常见的8个前端防御性编程方案
  6. perl 用网易发邮件报错 554 DT:SPM 163 smtp14
  7. 项目管理(2):管理过程二
  8. 指定开始_Flink-Kafka指定offset的五种方式
  9. java foreach6_Java foreach循环是否会创建一个新对象?
  10. Android开发之使用GridView+仿微信图片上传功能(附源代码)
  11. 入口函数ufusr()与ufsta()的区别
  12. Ubuntu下Tinyos安装步骤
  13. 关于Xshell的使用和网络攻防原理
  14. 服务器设置浏览器是否缓存
  15. 过犹不及,别再在编程中高射炮打蚊子
  16. 计算机管理上移动硬盘显示其他设备,移动硬盘坏了插上之后电脑会显示有新设备接入而且设备运转正常,但我 爱问知识人...
  17. Log4J的入门简介学习【转】
  18. 一度智信电商:教你几招,轻松利用微信给店铺引流
  19. 计算机辐射测试,测试计算机的电磁辐射
  20. VisualStudio找不到Python.h

热门文章

  1. python句柄无效_subprocess.Popen 运行windows命令出现“句柄无效”报错的解决方法
  2. ②你真的学会Java了吗?来自《卷Ⅰ》的灵魂提问
  3. linux命令复习之有关磁盘空间的命令
  4. Angular实现图片点击缩放组件
  5. Android_内存泄露
  6. vue-cli 使用better-scroll
  7. 中美共建大数据创新研究中心
  8. Leetcode | Implement strStr()
  9. 介绍MFSideMenu左右滑动控件的使用
  10. 【注册机】ColorSchemer Studio 2.1.0 注册机