java 读取xml
时间: 2024-10-23 10:20:47 浏览: 25
java读取xml文件
在Java中,读取XML文件通常使用的是JAXB (Java Architecture for XML Binding)、DOM (Document Object Model) 或 SAX (Simple API for XML) 这三种常见的库。
1. JAXB: 如果XML结构已经映射到Java类,JAXB可以将XML转换为Java对象,并自动处理反序列化过程。首先需要生成Java代理类,然后通过`Unmarshaller`从XML读取数据。
```java
Unmarshaller unmarshaller = JAXBContext.newInstance(MyClass.class).createUnmarshaller();
MyClass myObject = (MyClass) unmarshaller.unmarshal(new File("path_to_xml.xml"));
```
2. DOM: 它将整个XML文档加载到内存中,形成一个树形结构。可以使用`DocumentBuilderFactory`创建`DocumentBuilder`,然后解析XML。
```java
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(new File("path_to_xml.xml"));
// 通过XPath或NodeList访问节点并读取数据
```
3. SAX: 适合处理大文件,因为它一次只解析一部分内容,不需要把整个文档加载到内存。通过实现`ContentHandler`接口来处理XML事件。
```java
XMLReader reader = SAXParserFactory.newInstance().newSAXParser().getXMLReader();
DefaultHandler handler = new DefaultHandler() {
// 实现startElement等回调方法处理元素
};
reader.setContentHandler(handler);
reader.parse(new InputSource(new FileInputStream("path_to_xml.xml")));
```
阅读全文