Java 创建XML文件

package cn.jbolt.writefile;

import java.io.File;
import java.util.Arrays;
import java.util.List;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
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 CreateXML {

	private static final String xmlPath = "F:\\demo.xml";

	public static void main(String[] args) {
		createXml(xmlPath);
	}

	/**
	 * 生成xml方法
	 */
	public static void createXml(String xmlPath) {
		try {
			// 创建解析器工厂
			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
			DocumentBuilder domBuilder = factory.newDocumentBuilder();
			Document document = domBuilder.newDocument();
			// 不显示standalone="no"
			document.setXmlStandalone(true);
			
			Element bookstore = document.createElement("folder");
			
			String [] demo = new String[2];
			List<String> dataList  = Arrays.asList(demo);
			
			dataList.forEach(action ->{
				Element file = document.createElement("file");
				
				Element num = document.createElement("num");
				num.setTextContent("1");
                //其他方法请自行  .  出来
				Element no = document.createElement("no");
				no.setTextContent("档号");
				Element responsible = document.createElement("responsible");
				Element title = document.createElement("title");
				Element date = document.createElement("date");
				Element classification = document.createElement("classification");
				Element electronicName = document.createElement("electronicName");
				Element note = document.createElement("note");
				file.appendChild(num);
				file.appendChild(no);
				file.appendChild(responsible);
				file.appendChild(title);
				file.appendChild(date);
				file.appendChild(classification);
				file.appendChild(electronicName);
				file.appendChild(note);
				bookstore.appendChild(file);
			});
			document.appendChild(bookstore);
 
			// 创建TransformerFactory对象
			TransformerFactory tff = TransformerFactory.newInstance();
			// 创建 Transformer对象
			Transformer tf = tff.newTransformer();

			// 输出内容是否使用换行
			tf.setOutputProperty(OutputKeys.INDENT, "yes");
			// 创建xml文件并写入内容
			tf.transform(new DOMSource(document), new StreamResult(new File(xmlPath)));
			System.out.println("生成demo.xml成功");
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("生成demo.xml失败");
		}
	}
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java提供了多种方式生成XML文件。下面介绍两种常用的方式。 1. 使用DOM生成XML文件 DOM是一种树形结构的API,可以通过创建XML文档树来生成XML文件。以下是一个简单的Java代码示例,演示如何使用DOM生成一个名为person.xmlXML文件: ```java import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; 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 GenerateXml { public static void main(String[] args) throws Exception { // 创建XML文档对象和根元素 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.newDocument(); Element root = doc.createElement("Person"); doc.appendChild(root); // 添加子元素和文本节点 Element nameNode = doc.createElement("name"); nameNode.appendChild(doc.createTextNode("John")); root.appendChild(nameNode); Element ageNode = doc.createElement("age"); ageNode.appendChild(doc.createTextNode("30")); root.appendChild(ageNode); // 将XML文档保存到文件中 TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult(new File("person.xml")); transformer.transform(source, result); System.out.println("XML file saved!"); } } ``` 运行该程序将会生成一个名为person.xml的文件,包含以下内容: ```xml <?xml version="1.0" encoding="UTF-8" standalone="no"?> <Person> <name>John</name> <age>30</age> </Person> ``` 2. 使用JAXB生成XML文件 JAXB是Java Architecture for XML Binding的缩写,可以通过注解将Java对象转换为XML文件。以下是一个简单的Java代码示例,演示如何使用JAXB生成一个名为person.xmlXML文件: ```java import java.io.File; import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } } public class GenerateXml { public static void main(String[] args) throws Exception { Person p = new Person("John", 30); // 使用JAXB将对象转换为XML并保存到文件中 JAXBContext context = JAXBContext.newInstance(Person.class); Marshaller marshaller = context.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); marshaller.marshal(p, new File("person.xml")); System.out.println("XML file saved!"); } } ``` 运行该程序将会生成一个名为person.xml的文件,包含以下内容: ```xml <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <person> <age>30</age> <name>John</name> </person> ``` 可以看到,JAXB将属性按照字母顺序排序,并将Java对象转换为小写的XML元素。如果需要自定义XML元素的名称和属性的顺序,可以使用JAXB注解进行配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值