Java 新建 XML

介绍

XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言。在Java中,我们可以使用各种库和技术来创建和解析XML文档。本文将介绍如何使用Java创建一个简单的XML文档,并给出代码示例。

XML 的基本结构

XML文档由标记和数据组成。标记用于描述数据的结构和含义,而数据则是实际的内容。标记分为开始标记和结束标记,开始标记用尖括号包围,结束标记用尖括号和斜杠包围。数据可以包含在标记之间,也可以作为标记的属性。

一个简单的XML文档如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <element attribute="value">data</element>
</root>

在上面的例子中,root是根标记,element是子标记,attributeelement标记的属性。dataelement标记的内容。

使用DOM创建XML

在Java中,我们可以使用DOM(Document Object Model)库来创建和操作XML文档。DOM提供了一种树形结构来表示XML文档,每个标记都对应一个节点,可以通过操作节点来创建和修改XML文档。

下面是一个使用DOM创建XML的示例代码:

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.*;

public class CreateXml {
    public static void main(String[] args) {
        try {
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();
            Document document = builder.newDocument();

            // 创建根节点
            Element root = document.createElement("root");
            document.appendChild(root);

            // 创建子节点
            Element element = document.createElement("element");
            element.setAttribute("attribute", "value");
            element.appendChild(document.createTextNode("data"));
            root.appendChild(element);

            // 将文档写入文件
            TransformerFactory transformerFactory = TransformerFactory.newInstance();
            Transformer transformer = transformerFactory.newTransformer();
            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
            transformer.setOutputProperty("{ "4"); // 设置缩进
            DOMSource source = new DOMSource(document);
            StreamResult result = new StreamResult(new File("example.xml"));
            transformer.transform(source, result);

            System.out.println("XML文件创建成功。");

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

在上面的示例代码中,我们首先创建了一个DocumentBuilderFactory实例,并使用它创建了一个DocumentBuilder实例。然后,我们使用DocumentBuilder创建了一个Document对象,这个对象代表了整个XML文档。

接下来,我们创建了根节点和子节点,并将它们添加到文档中。我们使用setAttribute方法给子节点添加了一个属性,并使用appendChild方法将子节点添加到根节点中。我们还使用createTextNode方法创建了一个文本节点,并使用appendChild方法将它添加到子节点中。

最后,我们使用TransformerFactoryTransformer将文档写入文件。我们设置了输出的缩进格式,以使生成的XML文档易读。

运行上面的代码后,将会在当前目录下生成一个名为example.xml的文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <element attribute="value">data</element>
</root>

使用其他库创建XML

除了DOM,还有其他一些库可以用来创建和解析XML文档。例如,JAXB(Java Architecture for XML Binding)库可以根据XML的定义自动生成Java类,用于读取和写入XML文档。

下面是一个使用JAXB创建XML的示例代码:

import javax.xml.bind.*;

@XmlRootElement
public class Data {
    private String attribute;
    private String content;

    public Data() {}

    public Data(String attribute, String content) {
        this.attribute = attribute;
        this.content = content;
    }

    @XmlAttribute
    public String getAttribute() {
        return attribute;
    }

    public void setAttribute(String attribute) {
        this.attribute = attribute;
    }

    @XmlValue
    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }
}

public class CreateXml {
    public static void main