Электронный магазин на Java и XML



         

Создание DOM - часть 2


Если анализ XML завершился успешно и была создана объектная модель документа, вызывается метод locateCategories. Как показано в листинге 9.12, этот метод получает NodeList — список всех элементов article, и записывает его в переменную articleNodeList. Затем он вызывает метод processArticle для каждого элемента. Метод processArticle строит вектор элементов для каждого значения элемента cluster. Это как раз тот вектор, который выдает заголовки сообщений, если в запросе пользователя указана конкретная тематика.

Листинг 9.12. Метод locateCategories классифицирует заголовки (newsModel.java)

public void locateCategories(){ Element dE = doc.getDocumentElement(); // the root element clusterHash = new Hashtable(); articleNodeList = dE.getElementsByTagName("article"); int act = articleNodeList.getLength(); //System.out.println("Article count: " + act ); for( int i = 0 ; i < act ; i++ ){ Element aE = (Element) articleNodeList.item( i ) ; processArticle( aE ); } }

private void processArticle( Element artE ){ NodeList clusterNL = artE.getElementsByTagName("cluster"); if( clusterNL.getLength() == 0 ) return ; Element clE = (Element)clusterNL.item(0); String clusterStr = clE.getFirstChild().getNodeValue().trim() ; // System.out.println("cluster ct " + clusterNL.getLength() + // " value: " + clusterStr ); Object obj = clusterHash.get( clusterStr ); Vector v = null ; if( obj == null ){ v = new Vector(); clusterHash.put( clusterStr, v ); } else {v = (Vector)obj ; } v.addElement( artE ); }

 




Содержание  Назад  Вперед