1.简介
XML是一门可拓展标记语言,其可以在任何应用程序中读写数据,可用作数据的说明、储存、传输。
2.在Java中的使用
以此Book.xml为例:
<?xml version="1.0" encoding="UTF-8"?>
<bookList>
<book bookId="1">
<name>天龙八部</name>
<author>金庸</author>
<description>天龙八部的简介</description>
<type>武侠</type>
</book>
<book bookId="2">
<name>射雕英雄传</name>
<author>金庸</author>
<description>射雕英雄传的简介</description>
<type>武侠</type>
</book>
<book bookId="3">
<name>泡沫之夏</name>
<author>明晓溪</author>
<description>男女主爱情故事</description>
<type>言情</type>
</book>
</bookList>
2.1读取xml中的信息
public void readBook() {
//获取xml里的用户名与密码 SAX解析器
SAXReader saxReader = new SAXReader();
Document document = null;
Element rootElement = null;
try {
//获取文件对象
document = saxReader.read("txtNovelSystem/src/xml/Book.xml");
//获取文件根元素
rootElement = document.getRootElement();
//获取所有book子标签
List<Element> bookEles = rootElement.elements("book");
for (Element bookEle : bookEles) {
//获取一个user对象
Book book = new Book();
//获取userId
int bookId = Integer.parseInt(bookEle.attributeValue("bookId"));
book.setBookId(bookId);
String bookName = bookEle.element("name").getText();
book.setName(bookName);
String author = bookEle.element("author").getText();
book.setAuthor(author);
String description = bookEle.element("description").getText();
book.setDescription(description);
String type = bookEle.element("type").getText();
book.setType(type);
//将书籍信息添加进书籍列表
books.add(book);
}
for (Book book : books) {
System.out.println(book.toString());
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
2.2向xml文件中写入数据
public void addXmlUser() {
//获取xml里的用户名与密码
SAXReader saxReader = new SAXReader();
Document document = null;
Element rootElement = null;
FileWriter fw = null;
XMLWriter xmlWriter = null;
try {
document = saxReader.read("txtNovelSystem/src/xml/User.xml");
rootElement = document.getRootElement();
//添加user元素
Element newUserEle = rootElement.addElement("user");
//设置属性
int maxId = 0;
for (User user1 : users) {
if (maxId < user1.getUserId()) {
maxId = user1.getUserId();
}
}
maxId++;
newUserEle.addAttribute("userId", String.valueOf(maxId));
//添加子元素 并为其设置文本
Element usernameEle = newUserEle.addElement("username");
// usernameEle.setText(user.getName());
usernameEle.setText("haha");
Element passwordEle = newUserEle.addElement("password");
// usernameEle.setText(user.getPassword());
passwordEle.setText("21631");
OutputFormat outputFormat = OutputFormat.createPrettyPrint();
outputFormat.setEncoding("UTF-8");
fw = new FileWriter("txtNovelSystem/src/xml/User.xml");
xmlWriter = new XMLWriter(fw, outputFormat);
xmlWriter.write(document);
} catch (DocumentException | IOException e) {
e.printStackTrace();
}finally {
try {
if (xmlWriter != null) {
xmlWriter.close();
}
if (fw != null) {
fw.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}