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

         

Класс для создания таблиц - часть 2


private Hashtable tally = new Hashtable(); // Counters keyed by unique // ordered has a Vector of Counters per question private Vector ordered = new Vector(); private Hashtable qtext = new Hashtable(); // <Qtext> by id

public String tableStyle = "align=\"center\" border=\"3\" " ; public String lastErr = null ; public int resultCt = 0 ; String id ; // <Ques> attribute "id" as detected during parse

// constructor creates the vectors and hashtables to store results // qd is the questionnaire source XML doc public TallyQues( Document qd ){ Element E = qd.getDocumentElement(); NodeList qnl = E.getElementsByTagName("Ques"); int ct = qnl.getLength(); for( int i = 0; i < ct ; i++ ){ Vector quesv = new Vector(); // for this <Ques> ordered.addElement( quesv ); E = (Element)qnl.item(i); // Element is a <Ques> NodeList txn = E.getElementsByTagName("Qtext"); String tx = txn.item(0).getFirstChild().getNodeValue(); // question text String id = E.getAttribute( "id" ); qtext.put( id, tx ); quesv.addElement( id ); // first element of quesv is the id NodeList opt = E.getElementsByTagName("Qopt"); int opct =opt.getLength(); for( int n = 0 ; n < opct ; n++ ){ Element opE = (Element) opt.item(n); String val = opE.getAttribute("val"); String text = opE.getFirstChild().getNodeValue(); Counter cntr = new Counter( id, val, text ); quesv.addElement( cntr ); tally.put( cntr.unique, cntr ); } } }

Обработка снимка опроса

Фактическая обработка файла, содержащего снимок результатов опроса, начинается с метода tallyAns. Как показано в листинге 7.27, работа этого метода состоит из следующих этапов.

Файл открывается как объект org.xml .InputSource.

Создается анализатор в соответствии со строкой parserClass (см. листинг 7.26). Мы используем анализатор из пакета Sun, но вы можете заменить его на любой подходящий вам анализатор.

Объект TallyQues присоединяется к анализатору, с тем чтобы он мог получать вызовы методов обработки событий.




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