XML-парсинг SAX
От: alex-ikar Россия  
Дата: 09.10.06 15:47
Оценка:
Всем привет!

Вот делаю первые шаги в обработке xml-файлов..
Времени в обрез, из-за этого спешу, ну и естессна (для меня по крайней мере) что нихрена ниче не понятно...

Вот пример взятый мною с "http://www.java2s.com/Code/Java/XML/ParsingXMLFileswithSAX.htm"

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class xml {

  public static void main(String args[]) {

    if (args.length != 1) {
      System.err.println("Usage: java NameLister xmlfile.xml");
      System.exit(-1);
    }

    try {

      SAXParserFactory factory = SAXParserFactory.newInstance();
      SAXParser saxParser = factory.newSAXParser();

      DefaultHandler handler = new DefaultHandler() {
        boolean name = false;

        public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
          if (qName.equalsIgnoreCase("NAME")) {
            name = true;
          }
        }

        public void characters(char ch[], int start, int length) throws SAXException {
          if (name) {
            System.out.println("Name: "
                + new String(ch, start, length));
            name = false;
          }
        }
      };

      saxParser.parse(args[0], handler);
      
    } catch (Exception e) {
      e.printStackTrace();
    }
  }


Все как-бы чудесно, но мне не понятно следующее:
В доке для параметров метода "startElement" написано следующее:

uri — The Namespace URI, or the empty string if the element has no Namespace URI or if Namespace processing is not being performed.
localName — The local name (without prefix), or the empty string if Namespace processing is not being performed.
qName — The qualified name (with prefix), or the empty string if qualified names are not available.
attributes — The attributes attached to the element. If there are no attributes, it shall be an empty Attributes object.

1) Какие из этих параметров мне следует заполнять а какие нет?
2) О каких префиксах тут говорится? И что за "The Namespace URI"?
3) Что подразумевается здесь под атрибутами (attributes attached to the element)?
4) Вызывать этот метод нужно сразу после
saxParser.parse(args[0], handler);
или между ними надо выполнить еще набор каких-либо действий... ?

Вот например есть xml-файл подобного вида:
<PHONEBOOK>
<PERSON>
<NAME>Green</NAME>
<EMAIL>green@yourserver.com</EMAIL>
<TELEPHONE>9001-999-201</TELEPHONE>
<WEB>www.java.com</WEB>
</PERSON>
</PHONEBOOK>

Мне нужно выдрать из этого файла значения всех его элементов..

Если у кого хватит терпения объяснить на примере — спасибо, если кто хотябы "пнет" меня в нужную сторону — тоже буду примного благодарен ...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.