在课程源代码上修改既可。可以看到生成xml的流程:创建节点名(.createElement),传入节点值(.setTextContent),将子节点添加到根节点(.appendChild)。
/**
* 生成xml
*/
public void createXML() {
DocumentBuilder db = getDocumentBuilder();
Document document = db.newDocument();
document.setXmlStandalone(true);
Element bookstore = document.createElement("bookStore");
// 向bookstore根节点添加子节点book,第一本书
Element book = document.createElement("book");
Element name = document.createElement("name");
Element author = document.createElement("author");
Element year = document.createElement("year");
Element price = document.createElement("price");
name.setTextContent("冰与火之歌");
author.setTextContent("乔治马丁");
year.setTextContent("2014");
price.setTextContent("89");
book.appendChild(name);
book.appendChild(author);
book.appendChild(year);
book.appendChild(price);
book.setAttribute("id", "1");
// 将第一本书book节点加到bookstore根节点
bookstore.appendChild(book);
// 向bookstore根节点添加子节点book,第二本书
Element book1 = document.createElement("book");
Element name1 = document.createElement("name");
Element author1 = document.createElement("author");
Element year1 = document.createElement("year");
Element price1 = document.createElement("price");
Element language = document.createElement("language");
name1.setTextContent("安徒生童话");
author1.setTextContent("安徒生");
year1.setTextContent("2004");
price1.setTextContent("77");
language.setTextContent("English");
book1.appendChild(name1);
book1.appendChild(author1);
book1.appendChild(year1);
book1.appendChild(price1);
book1.appendChild(language);
book1.setAttribute("id", "2");
// 将第二本书book节点加到bookstore根节点
bookstore.appendChild(book1);
// 将bookstore节点(已包含book节点)添加到dom树中
document.appendChild(bookstore);
// 创建TransformerFactory对象
TransformerFactory tff = TransformerFactory.newInstance();
try {
// 创建Transformer对象
Transformer tf = tff.newTransformer();
tf.setOutputProperty(OutputKeys.INDENT, "yes");
tf.transform(new DOMSource(document), new StreamResult(new File("books1.xml")));
} catch (TransformerConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}