Листинг 8.13. Метод doNewsItemLong выводит полную версию сообщения (NewsFormatter.java)
// <Newsitem elements have been hashed // output long form with <p> ...</p> formatting private void doNewsItemLong( PrintWriter out ){ out.print("<h3> "); out.print( nodeHash.get("head") ); out.println("</h3> "); Element de = (Element)nodeHash.get("date"); out.print( de.getFirstChild() ); out.println("</p> "); Element ne = (Element)nodeHash.get("long"); String wrk = ne.getFirstChild().getNodeValue().trim() ; if( !(wrk.startsWith("<P") || wrk.startsWith("<p")) ){ out.print("<p> "); } out.print( wrk ); if( !(wrk.endsWith("/p> ") || wrk.endsWith("/P> "))){ out.print("</p> "); } itemsCount++ ; out.println(); }
Наконец, в листинге 8.14 представлены два служебных метода. Метод setFor- matTempl ate отыскивает файл и считывает его строка за строкой. Предполагается, что в файле имеется строка, начинающаяся с текста "<!-INSERT". Она разделяет разметку HTML на два раздела, которые становятся переменными headStr и footStr. Метод toString предназначен для помощи в отладке.