java如何实现xml
XML 解析与生成方法
DOM 解析
使用 javax.xml.parsers.DocumentBuilder 解析 XML 为树形结构:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(new File("input.xml"));
NodeList nodes = doc.getElementsByTagName("nodeName");
SAX 解析 基于事件驱动的轻量级解析方式:

SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
parser.parse(new File("input.xml"), new DefaultHandler() {
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) {
// 处理开始标签
}
});
JAXB 绑定 通过注解实现对象与 XML 转换:

@XmlRootElement
class Person {
@XmlElement
String name;
}
JAXBContext context = JAXBContext.newInstance(Person.class);
Marshaller marshaller = context.createMarshaller();
marshaller.marshal(new Person(), new File("output.xml"));
XStream 库 简化 XML 序列化操作:
XStream xstream = new XStream();
String xml = xstream.toXML(myObject);
MyObject obj = (MyObject)xstream.fromXML(xml);
DOM4J 生成 创建新的 XML 文档:
Document document = DocumentHelper.createDocument();
Element root = document.addElement("root");
root.addElement("child").addText("content");
XMLWriter writer = new XMLWriter(new FileWriter("output.xml"));
writer.write(document);
注意事项
- 处理大型 XML 时优先选择 SAX 或 StAX 解析器避免内存溢出
- 需要验证 XML 结构时可搭配使用 XSD 或 DTD
- 输出 XML 时注意设置编码格式(如 UTF-8)
- 特殊字符需进行转义处理(如 < 转义为 <)






