Листинг 8.31. Метод, который записывает отдельный элемент из DOM (NewsllpKeep.java)
// write a <Newsitem Element duplicating the attributes public void writeNewsNode(PrintWriter out, Element e) { NamedNodeMap nnm = e.getAttributes(); out.print("<Newsitem " ) ; //timestamp=\""); int i ; for( i = 0 ; i < nnm.getLength() ; i++ ){ Attr na = (Attr) nnm.item(i); // Attr extends Node String atr = na.getName(); String val = na.getValue(); out.print( atr ); out.print("=\""); out.print( val ); out.print("\" "); } out.println("> "); NodeList nl = e.getChildNodes(); int ct = nl.getLength(); for( i = 0 ; i < ct ; i++ ){ Node nde = nl.item( i ); if( nde instanceof Element ){ Element ce = (Element)nde; String name = ce.getTagName(); out.print("<" + name + "> "); NodeList chnl = ce.getChildNodes() ; if( chnl.getLength() == 0 ) continue ; Node chn = chnl.item(0); if( name.equals("long") || name.equals("short") ){ out.print("<![CDATA["); out.println( chn.getNodeValue().trim() ); out.print("]]> "); } else { out.print( chn.getNodeValue() ); } out.println("</" + name + "> "); } } // loop over <Newsitem> child nodes out.println("</Newsitem> "); } }
На основе нашего опыта добавления новых сообщений с помощью сервлета CompanyNewsServ вы можете сначала создать полный текст сообщения в текстовом редакторе, а затем при работе с формой HTML для ввода текста просто вставить его в форму с помощью команд вырезания и вставки.