java如何引用xml
引用XML的常见方法
在Java中处理XML可以通过多种方式实现,以下是几种主流方法:
DOM解析 DOM(Document Object Model)将整个XML文档加载到内存中形成树状结构,适合对XML进行频繁读写操作。
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new File("data.xml"));
NodeList nodeList = document.getElementsByTagName("element");
SAX解析 基于事件驱动的流式解析,内存占用小,适合处理大型XML文件。
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
parser.parse("data.xml", new DefaultHandler() {
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) {
// 处理开始标签
}
});
JDOM解析 简化版的DOM解析,API更易用。
SAXBuilder builder = new SAXBuilder();
Document document = builder.build(new File("data.xml"));
Element root = document.getRootElement();
StAX解析 结合了DOM和SAX优点的流式API,支持前后向解析。
XMLInputFactory factory = XMLInputFactory.newInstance();
XMLEventReader reader = factory.createXMLEventReader(new FileInputStream("data.xml"));
while(reader.hasNext()) {
XMLEvent event = reader.nextEvent();
// 处理事件
}
数据绑定方式
JAXB Java Architecture for XML Binding,支持XML与Java对象的相互转换。
JAXBContext context = JAXBContext.newInstance(Book.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
Book book = (Book) unmarshaller.unmarshal(new File("book.xml"));
XStream 轻量级的对象序列化库。

XStream xstream = new XStream();
xstream.alias("person", Person.class);
Person person = (Person)xstream.fromXML("<person><name>John</name></person>");
最佳实践选择
- 需要完整操作XML文档时选择DOM
- 处理大型文件优先考虑SAX或StAX
- 需要对象映射时使用JAXB或XStream
- Android开发推荐使用XmlPullParser
所有方法都需要处理可能抛出的ParserConfigurationException、SAXException和IOException等异常。现代Java版本(9+)中JAXB已从标准库移除,需单独添加依赖。






