📅  最后修改于: 2023-12-03 15:31:32.730000             🧑  作者: Mango
XML是一种标记语言,它是一种用于存储和传输数据的普遍格式。Java通过许多API支持XML编程,包括DOM、SAX和StAX等API。
XML是用于数据交换和储存的标记语言,标识符为<tag>
,通常包含属性和文本内容。
XML文档有以下几个基本组件:
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
...
</bookstore>
<book category="Cooking">
<title>Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="Cooking">
...
</book>
<!-- This is a comment -->
Java中提供了三种XML解析方法:DOM、SAX和StAX。每种方法具有不同的优缺点。
创建一个新的XML文档,可以使用JAXP(Java API for XML Processing)中的DocumentBuilder类。例如:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.newDocument();
// 创建根元素
Element root = doc.createElement("bookstore");
doc.appendChild(root);
// 创建元素和属性
Element book = doc.createElement("book");
book.setAttribute("category", "Cooking");
Element title = doc.createElement("title");
title.setTextContent("Everyday Italian");
book.appendChild(title);
// 将元素添加到根元素中
root.appendChild(book);
使用DOM解析器来读取XML文档。可以使用DocumentBuilder类的parse()方法来解析文件,例如:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new File("bookstore.xml"));
// 获取根元素
Element root = doc.getDocumentElement();
// 获取子元素
NodeList bookList = root.getElementsByTagName("book");
for (int i = 0; i < bookList.getLength(); i++) {
Element book = (Element) bookList.item(i);
// 获取属性
String category = book.getAttribute("category");
// 获取元素
Element title = (Element) book.getElementsByTagName("title").item(0);
String titleText = title.getTextContent();
}
使用DOM解析器修改XML文档。例如:
NodeList bookList = doc.getElementsByTagName("book");
for (int i = 0; i < bookList.getLength(); i++) {
Element book = (Element) bookList.item(i);
// 修改属性
book.setAttribute("category", "Travel");
// 修改元素
Element price = (Element) book.getElementsByTagName("price").item(0);
price.setTextContent("25.00");
}
本教程介绍了XML基础、XML解析和XML操作的相关内容。Java通过许多API支持XML编程,包括DOM、SAX和StAX等API。对于XML编程感兴趣的开发者们可以根据文档作进一步学习。
以上为Java XML教程。