java如何调用xml
调用XML的常用方法
在Java中处理XML通常涉及解析、生成或修改XML文档。以下是几种主流方法:
使用DOM解析XML
DOM(Document Object Model)将整个XML文档加载到内存中形成树状结构,适合小型XML文件。
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
// 解析XML文件
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse("file.xml");
// 获取节点值
String value = document.getElementsByTagName("tagName").item(0).getTextContent();
使用SAX解析XML
SAX(Simple API for XML)基于事件驱动,逐行读取XML,内存占用低,适合大型文件。

import org.xml.sax.helpers.DefaultHandler;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
// 自定义处理器
class MyHandler extends DefaultHandler {
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) {
System.out.println("Start Element: " + qName);
}
}
// 解析XML
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
parser.parse("file.xml", new MyHandler());
使用JDOM或DOM4J
第三方库如JDOM/DOM4J简化了DOM操作,提供更直观的API。
// DOM4J示例
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.io.SAXReader;
SAXReader reader = new SAXReader();
Document document = reader.read("file.xml");
String value = document.selectSingleNode("//tagName").getText();
使用JAXB处理XML绑定
JAXB(Java Architecture for XML Binding)通过注解将Java对象与XML相互转换。

import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
// 对象转XML
JAXBContext context = JAXBContext.newInstance(MyClass.class);
Marshaller marshaller = context.createMarshaller();
marshaller.marshal(myObject, new File("output.xml"));
// XML转对象
Unmarshaller unmarshaller = context.createUnmarshaller();
MyClass obj = (MyClass) unmarshaller.unmarshal(new File("input.xml"));
使用XPath查询XML
XPath提供路径表达式快速定位节点,常与DOM结合使用。
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathFactory;
XPath xpath = XPathFactory.newInstance().newXPath();
String expression = "/root/element[@attr='value']";
String result = xpath.evaluate(expression, document);
生成XML文档
通过DOM或第三方库创建XML文件。
// DOM生成XML
Document doc = builder.newDocument();
Element root = doc.createElement("root");
doc.appendChild(root);
// 转换输出
TransformerFactory.newInstance().newTransformer().transform(
new DOMSource(doc), new StreamResult(new File("output.xml"))
);
注意事项
- 性能选择:大文件优先选SAX或StAX,小文件可用DOM。
- 线程安全:DOM4J/JDOM非线程安全,需自行同步。
- 依赖管理:第三方库需引入对应Maven/Gradle依赖。
以上方法覆盖了XML处理的常见场景,根据具体需求选择合适工具即可。






