Введение в SAX

StartElement()


Теперь начнем рассмотрение действительно данных. Для каждого элемента пример возвращает имя, которое передается в событие startElement() (см. копию экрана для списка элементов, показанную ниже.).

На самом деле парсер передает несколько частей информации для каждого элемента:

  • Квалифицированное имя или qName. Это комбинация информации пространства имен, если оно существует, и собственно имени элемента. qName также включает в себя двоеточие (:), если оно есть - например, revised:response.
  • URI пространства имен. Как обсуждается в , пространство имен является некоторым URI, а не алиасом, который дается имени элемента или атрибута. Например, http://www.nicholaschase.com/surveys/revised/ не то же, что просто revised:.
  • Локальное имя. Это действительное имя элемента, такое, как question. Если документ не предоставляет информацию о постранствах имен, парсер не сможет определить, какой частью qName является localName.
  • Любые атрибуты. Атрибуты для элементов передаются как коллекция объектов, как показано в следующем подразделе.

Начнем с перечисления имен всех элементов:

... import org.xml.sax.Attributes;

public class SurveyReader extends DefaultHandler { ... public void startDocument() throws SAXException { System.out.println("Tallying survey results..."); } public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException { System.out.print("Start element: "); System.out.println(qName); }

public static void main (String args[]) { ...



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