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

         

Пример синтаксического...



Листинг 3.4. Пример синтаксического анализа документа (TheCatalog.java)

] import javax.xml.parsers.* ; import org.xml.sax.* ; import org.w3c.dom.* ; public class TheCatalog { org.w3c.dom.Document catDoc ; public TheCatalog( File f, TextArea msg, TextField status ){ try { timestamp = f.lastModified();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance ();
// statements to configure the DocumentBuilder would go here DocumentBuilder db = dbf.newDocumentBuilder ();
catDoc = db.parse( f );


}catch(ParserConfigurationException pce){ lastErr = pce.toString();
System.out.println("constructor threw " + lastErr );
}catch(SAXParseException spe ){ StringBuffer sb = new StringBuffer( spe.toString() );
sb.append("\n Line number: " + spe.getLineNumber());
sb.append("\nColumn number: " + spe.getColumnNumber() );
sb.append("\n Public ID: " + spe.getPublicId() );
sb.append("\n System ID: " + spe.getSystemId() + "\n");
lastErr = sb.toString();
System.out.print( lastErr );
}catch( SAXException se ){ lastErr = se.toString();
System.out.println("constructor threw " + lastErr );
se.printStackTrace( System.out );
}catch( IOException ie ){ lastErr = ie.toString();
System.out.println("constructor threw " + lastErr + " trying to read " + f.getAbsolutePath() );
} }

Структура данных DOM выстраивается в памяти в такую же иерархическую систему, какая была в документе XML. Объекты Java представляют различные части документа XML и связаны ссылками на соседние элементы, как показано на рис. 1.2 в главе 1. Программные интерфейсы объектов Java, представляющие различные части документа, определены в пакете org.w3c.dom. Каждая часть документа XML, включая корневой элемент, представлена в виде объекта, реализующего интерфейс, который является расширением фундаментального интерфейса Node.



Содержание раздела