java生成xml文件
时间: 2023-10-10 15:11:49 浏览: 192
Java提供了多种方式生成XML文件。下面介绍两种常用的方式。
1. 使用DOM生成XML文件
DOM是一种树形结构的API,可以通过创建XML文档树来生成XML文件。以下是一个简单的Java代码示例,演示如何使用DOM生成一个名为person.xml的XML文件:
```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.xml的XML文件:
```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注解进行配置。
阅读全文