-- 作者:1702king
-- 发布时间:4/26/2005 9:31:00 PM
--
我的程序是这样的: /*******intro.xml************/ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE myMessage [ <!ELEMENT myMessage (message)> <!ELEMENT message (#PCDATA)> ]> <myMessage> <message>Welcome to XML!</message> </myMessage> /*******ReplaceText.java(Read intro.xml)*************/ import java.io.*; import org.w3c.dom.*; import javax.xml.parsers.*; import org.apache.crimson.tree.XmlDocument; import org.xml.sax.*; public class ReplaceText { private Document document; public ReplaceText() { try { DocumentBuilderFactory factory= DocumentBuilderFactory.newInstance(); factory.setValidating(true); DocumentBuilder builder=factory.newDocumentBuilder(); builder.setErrorHandler(new MyErrorHandler()); document=builder.parse(new File("intro.xml")); Node root=document.getDocumentElement(); if (root.getNodeType()==Node.ELEMENT_NODE) { Element myMessageNode=(Element)root; NodeList messageNodes=myMessageNode.getElementsByTagName("message"); if (messageNodes.getLength()!=0) { Node message=messageNodes.item(0); Text newText=document.createTextNode("New Changed Message!"); Text oldText=(Text)message.getChildNodes().item(0); message.replaceChild(newText,oldText); } } ((XmlDocument)document).write(new FileOutputStream(intro1.xml)); }catch(SAXParseException spe) { System.err.println("Parse Error:"+spe.getMessage()); System.exit(1); }catch(SAXException se) { se.printStackTrace(); }catch(FileNotFoundException fne) { System.err.println("File \'intro.xml\' not Found."); System.exit(1); }catch(Exception e) { e.printStackTrace(); } } public static void main(String args[]) { ReplaceText d=new ReplaceText(); } }; /************Error Handler for validation errors.***********/ import org.xml.sax.ErrorHandler; import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; public class MyErrorHandler implements ErrorHandler { public void fatalError(SAXParseException exception)throws SAXException { throw exception; } public void error(SAXParseException e)throws SAXParseException { throw e; } public void warning(SAXParseException err)throws SAXParseException { System.err.println("Warning:"+err.getMessage()); } }; 运行:javac ReplaceText.java MyErrorHandler.java 编译通过了 运行:java ReplaceText 提示错误:java.lang.ClassCastException 错误指向这两行: ((XmlDocument)document).write(new FileOutputStream(intro1.xml)); ReplaceText d=new ReplaceText(); 请问该怎样解决呢?
|