第一种:
public void insertNode() throws Exception{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder db = factory.newDocumentBuilder();
File xml = new File("books.xml");
Document doc = db.parse(xml);
//insert a node
Element books = null;
Element book = null;
Element bookName = null;
Element bookAuthor = null;
Element bookISBN = null;
Element bookPrice = null;
// create book element
book = doc.createElement("Book");
book.setAttribute("id","004");
// create bookName element
bookName = doc.createElement("bookName");
bookName.appendChild(doc.createTextNode("J2EE Programme begin Book"));
// create bookAuthor element
bookAuthor = doc.createElement("bookAuthor");
bookAuthor.appendChild(doc.createTextNode("Hesj"));
// create bookISBN element
bookISBN = doc.createElement("bookISBN");
bookISBN.appendChild(doc.createTextNode("7-145-10241-3"));
// create bookPrice element
bookPrice = doc.createElement("bookPrice");
bookPrice.appendChild(doc.createTextNode("77.8"));
// add that element for book
book.appendChild(bookName);
book.appendChild(bookAuthor);
book.appendChild(bookISBN);
book.appendChild(bookPrice);
// get books element 
books = (Element)doc.getElementsByTagName("Books").item(0);
books.appendChild(book);
// 
File ss = new File("books.xml");
FileOutputStream out = new FileOutputStream(ss);
((XmlDocument)doc).write(out);
}
第二种:
public void createMonitorFile(File xmlFile) throws Exception {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder db = factory.newDocumentBuilder();
Document doc = db.parse(xmlFile);
FileOutputStream out = new FileOutputStream(monitorFilePath + "\\" + 
xmlFile.getName());
((XmlDocument)doc).write(out);
}第一种方法执行时,可以将doc输出到某一文件,第二种执行时,程序走到((XmlDocument)doc).write(out);  就抛出了异常,错误信息如下:java.lang.ClassCastException
两种做法原理都一样,不明白为什么第二种有异常,大家帮忙看看