java如何编写xml
使用DOM生成XML
DOM(Document Object Model)是Java内置的XML处理API,适合构建结构化的XML文档。
创建DocumentBuilder实例,通过Document对象添加元素和属性:
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
Document doc = factory.newDocumentBuilder().newDocument();
Element root = doc.createElement("root");
doc.appendChild(root);
Element child = doc.createElement("child");
child.setAttribute("id", "1");
child.setTextContent("Hello XML");
root.appendChild(child);
// 转换为字符串
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
StringWriter writer = new StringWriter();
transformer.transform(new DOMSource(doc), new StreamResult(writer));
String xmlString = writer.toString();
使用JDOM生成XML
JDOM是简化XML操作的第三方库,需添加依赖(如Maven):
<dependency>
<groupId>org.jdom</groupId>
<artifactId>jdom2</artifactId>
<version>2.0.6</version>
</dependency>
代码示例:
import org.jdom2.Element;
import org.jdom2.Document;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;
Element root = new Element("root");
Document doc = new Document(root);
Element child = new Element("child");
child.setAttribute("id", "1");
child.setText("Hello XML");
root.addContent(child);
XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat());
String xmlString = outputter.outputString(doc);
使用XStream生成XML
XStream支持对象到XML的序列化,需添加依赖:
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.20</version>
</dependency>
代码示例:
import com.thoughtworks.xstream.XStream;
class Person {
String name = "John";
int age = 30;
}
XStream xstream = new XStream();
String xml = xstream.toXML(new Person());
// 输出:<Person><name>John</name><age>30</age></Person>
使用StAX生成XML
StAX(Streaming API for XML)适合处理大型XML文件,基于事件驱动:

import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamWriter;
StringWriter writer = new StringWriter();
XMLStreamWriter xmlWriter = XMLOutputFactory.newInstance().createXMLStreamWriter(writer);
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("root");
xmlWriter.writeStartElement("child");
xmlWriter.writeAttribute("id", "1");
xmlWriter.writeCharacters("Hello XML");
xmlWriter.writeEndElement();
xmlWriter.writeEndElement();
xmlWriter.writeEndDocument();
String xmlString = writer.toString();
选择建议
- DOM/JDOM:适合需要频繁修改或随机访问的XML文档。
- StAX:适合内存受限的大型XML文件处理。
- XStream:适合简单对象的快速序列化。
以上方法生成的XML均可通过文件输出流(如FileWriter)保存到本地文件。






