JAVA生成XML文件

JAVA生成XML文件

大家好,又见面了,我是全栈君。

 Java Bean:

package xml;

public class Person {
private String name ;
private int age ;


public Person(String name, int age) {
  super();
  this.name = name;
  this.age = age;
}

public String getName() {
  return name;
}

public void setName(String name) {
  this.name = name;
}

public int getAge() {
  return age;
}

public void setAge(int age) {
  this.age = age;
}


}

详细实现:

package xml;

import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
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;

public class XmlGeneratorDemo {
public static void main(String[] args) {
  String outputPath = System.getProperty("user.dir")+File.separator + "src"+File.separator+"person.xml";
  generateXml(outputPath);
}
public static void generateXml(String outputPath) {
  try {
   Person [] arr = new Person[]{new Person("jinbo",20), new Person("gameboy",25)};
   List<Person> list = Arrays.asList(arr);//将数组转换成List
   Document doc = generateXml(list);//生成XML文件
   outputXml(doc, outputPath);//将文件输出到指定的路径
  } catch (Exception e) {
   System.err.println("出现异常");
  }
}
/**
  * 将XML文件输出到指定的路径
  * @param doc
  * @param fileName
  * @throws Exception
  */
private static void outputXml (Document doc, String fileName) throws Exception{
  TransformerFactory tf = TransformerFactory.newInstance();
  Transformer transformer = tf.newTransformer();
  DOMSource source = new DOMSource(doc);
  transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
  transformer.setOutputProperty(OutputKeys.INDENT, "yes");//设置文档的换行与缩进
  PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));
  StreamResult result = new StreamResult(pw);
  transformer.transform(source, result);
  System.out.println("生成XML文件成功!");
}
/**
  * 生成XML文件
  * @param list
  * @return
  */
public static Document generateXml(List<Person> list){
  Document doc = null;
  Element root = null;
  try {
   DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
   DocumentBuilder builder = factory.newDocumentBuilder();
   doc = builder.newDocument();
   root = doc.createElement("person");
   doc.appendChild(root);
  } catch (Exception e) {
   e.printStackTrace();
   return null;//假设出现异常,则不再往下运行
  }
  
  int len = list.size() ;
  Element element ;
  for (int i = 0; i < len; i++) {
   Person person = list.get(i);
   element = doc.createElement("person"+(i+1));
   element.setAttribute("age", ""+person.getAge());
   element.setAttribute("name", person.getName());
   root.appendChild(element);
  }
  return doc;
}
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116340.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • maven 本地仓库的配置以及如何修改默认.m2仓库位置

    maven 本地仓库的配置以及如何修改默认.m2仓库位置本地仓库是远程仓库的一个缓冲和子集,当你构建Maven项目的时候,首先会从本地仓库查找资源,如果没有,那么Maven会从远程仓库下载到你本地仓库。这样在你下次使用的时候就不需要从远程下载了。如果你所需要的jar包版本在本地仓库没有,而且也不存在于远程仓库,Maven在构建的时候会报错,这种情况可能是有些jar包的新版本没有在Maven仓库中及时更新。(感觉和网络里面的路由器有点像,你发请求,先在…

    2022年9月24日
    5
  • 电子科技大学考研真题在哪找_二本电子科技大学排名

    电子科技大学考研真题在哪找_二本电子科技大学排名全局目录说明:电子科技大学计算机专业基础专业的科目代码2003年是429,2005年不详,2006年改为413,2008年改为820。电子科技大学信息与软件工程学院、计算机科学与工程学院、电子科学技术研究院、自动化工程学院均考此科目。2014年电子科技大学820计算机专业基础考研真题电子科技大学20U年攻读硕士学位硏究生入学考试试题考试科目:820计算机专业基础注:所有答秦必须写…

    2022年8月30日
    6
  • 【OpenGrok代码搜索引擎】二、Windows10下基于Linux子系统搭建Opengrok代码搜索引擎

    【OpenGrok代码搜索引擎】二、Windows10下基于Linux子系统搭建Opengrok代码搜索引擎OpenGrok为一个方便快速的源码搜索及交叉引用查询引擎。它以Java编写,可用于源码搜索、交叉引用查询、以及源码树定位。它支持多种编码语言和多种代码版本控制引擎系统。

    2022年5月5日
    42
  • mvnw的作用_尼康D200色影无忌

    mvnw的作用_尼康D200色影无忌mvnw

    2025年6月8日
    2
  • Java判断List是否为空

    Java判断List是否为空在Java中,我们常用List来存储数据,但是我们怎么判断它是否成功带来了我们需要的数据呢,以ArrayList为例,老规矩,先说结论,建议(list!=null&&!list.isEmpty);接下来是正文:20190723,这鬼天气又闷又热.远在1.99公里外的同事问了我一个问题,,一瞬间,我留下了激动的泪水.日日划水的我终于被发现了一丝价值.真是美好的一天啊….

    2025年8月25日
    1
  • c#输出心形图片

    c#输出心形图片

    2021年9月28日
    56

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号