xml如何生成java
XML 生成 Java 的方法
使用 JAXB (Java Architecture for XML Binding)
JAXB 是 Java 标准库的一部分,用于将 XML 数据绑定到 Java 对象。可以通过以下步骤实现 XML 到 Java 的转换:
-
定义 XML Schema (XSD)
创建一个 XSD 文件描述 XML 结构。例如:<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="person"> <xs:complexType> <xs:element name="name" type="xs:string"/> <xs:element name="age" type="xs:int"/> </xs:complexType> </xs:element> </xs:schema> -
生成 Java 类
使用xjc工具从 XSD 生成 Java 类:xjc schema.xsd -d output_dir生成的 Java 类会包含注解(如
@XmlRootElement),用于与 XML 字段映射。 -
解析 XML 到 Java 对象
使用JAXBContext解析 XML:JAXBContext context = JAXBContext.newInstance(Person.class); Unmarshaller unmarshaller = context.createUnmarshaller(); Person person = (Person) unmarshaller.unmarshal(new File("person.xml"));
使用 DOM 或 SAX 解析器
如果不需要完整的对象绑定,可以直接使用 DOM 或 SAX 解析 XML:
DOM 解析示例
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(new File("data.xml"));
NodeList nodes = doc.getElementsByTagName("person");
SAX 解析示例
需继承 DefaultHandler 并重写方法:
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
parser.parse("data.xml", new MyHandler());
使用第三方库(如 SimpleXML 或 XStream)
SimpleXML
适用于简单 XML 到 Java 的映射:
Serializer serializer = new Persister();
Person person = serializer.read(Person.class, new File("person.xml"));
XStream
支持灵活的 XML 转换:
XStream xstream = new XStream();
xstream.alias("person", Person.class);
Person person = (Person) xstream.fromXML("<person><name>John</name></person>");
手动解析(适用于简单 XML)
对于结构简单的 XML,可以直接使用字符串操作或正则表达式提取数据:

String xml = "<person><name>John</name></person>";
String name = xml.replaceAll(".*<name>(.*)</name>.*", "$1");
选择方法的依据
- JAXB:适合复杂 XML 结构,需要严格的 XSD 定义。
- DOM/SAX:适合动态解析或处理大型 XML 文件(SAX 更节省内存)。
- 第三方库:简化代码,适合快速开发。
- 手动解析:仅适用于极简单的 XML 场景。
根据具体需求选择合适的方法。






