Листинг 8.27. Начало класса NewsUpKeep (NewsUpKeep.java)
package com.XmlEcomBook.Chap08;
import com.XmlEcomBook.DOMlibrary ; import java.io.*; import java.util.* ; import javax.servlet.*; import javax.servlet.http.*; import org.w3c.dom.* ;
public class NewsUpkeep { File newsFile ; String newsFileName ; Node[] itemNodes ; NamedNodeMap rootNNM ; // for root attributes
public NewsUpkeep( File f) throws IOException { newsFile = f ; newsFileName = f.getAbsolutePath() ; DOMlibrary library = DOMlibrary.getLibrary(); Document doc = library.getDOM( newsFileName ); if( doc == null ){ throw new FileNotFoundException( newsFileName ); } Element re = doc.getDocumentElement(); rootNNM = re.getAttributes(); System.out.println("Root has " + rootNNM.getLength() + " attributes"); NodeList newsItemNodes = doc.getElementsByTagName("Newsitem"); int ct = newsItemNodes.getLength(); itemNodes = new Node[ ct ]; for( int i = 0 ; i < ct ; i++ ){ itemNodes[i] = newsItemNodes.item( i ); } }
В листинге 8.28 показаны некоторые вспомогательные методы, необходимые в классе NewsUpKeep. Метод formatTopics гарантирует, что строка, которая будет записана в качестве значения атрибута topic, имеет правильный формат.