在Java中处理XML的常用开源工具有很多,以下是一些流行的库以及简单的示例代码:
DOM4J
DOM4J 是一个非常流行的Java库,用于处理XML,DOM4J 易于使用,并且提供了很好的性能。
Maven 依赖
<dependency>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>2.1.3</version>
</dependency>
读取 XML 文件的简单示例
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Dom4jDemo {
public static void main(String[] args) throws DocumentException {
SAXReader reader = new SAXReader();
Document document = reader.read("example.xml");
Element root = document.getRootElement();
System.out.println(root.getName()); // 输出根元素的名称
}
}
JDOM
JDOM 是另一种用于处理XML的Java库,它提供了一个简单的API来创建、修改和访问XML数据。
Maven 依赖
<dependency>
<groupId>org.jdom</groupId>
<artifactId>jdom2</artifactId>
<version>2.0.6</version>
</dependency>
创建 XML 文件的简单示例
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;
import java.io.FileWriter;
import java.io.IOException;
public class JdomDemo {
public static void main(String[] args) throws IOException {
Element rootElement = new Element("root");
Document document = new Document(rootElement);
rootElement.addContent(new Element("child").setText("Hello, World!"));
XMLOutputter xmlOutputter = new XMLOutputter();
xmlOutputter.setFormat(Format.getPrettyFormat());
xmlOutputter.output(document, new FileWriter("example.xml"));
}
}
Jackson XML
Jackson 是一个用于处理JSON和XML的流行库。它提供了一个名为 `jackson-dataformat-xml` 的模块来处理XML。
Maven 依赖
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.13.0</version>
</dependency>
将对象转换为 XML 的简单示例
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
public class JacksonXmlDemo {
public static void main(String[] args) throws IOException {
Item item = new Item("123", "Book", 19.99);
XmlMapper xmlMapper = new XmlMapper();
String xmlString = xmlMapper.writeValueAsString(item);
System.out.println(xmlString);
}
static class Item {
public String id;
public String name;
public double price;
public Item(String id, String name, double price) {
this.id = id;
this.name = name;
this.price = price;
}
}
}
这些示例展示了如何使用这些库进行基础操作。这些库的功能非常强大,支持更复杂的操作,如XML验证、XSLT转换、XPath查询等。你可以根据项目需求进行更深入的学习和使用。