Java - Problem z parserem SAX

0

Witam! Po raz pierwszy używam tego parsera i mam następujący problem : przeglądam elementy tak :


public void startElement(String uri, String localName, String qName, Attributes att)
          		{
          			System.out.println(qName);
          		
          			if (qName.equals("osoba") && att.getLength()!=0)
          			{
          				System.out.println("Jestem tu!");
          				for (int i=0 ; i< att.getLength() ; i++)
          				{
          					System.out.println("i tu!");
          					String aname = att.getLocalName(i);
          					System.out.println(att.getValue(i));
          				}
          			}
          		}

W ten sposob wypisuja mi sie wszystkie nazwy pol z dokumntu xml ale nie wypisuja mi sie wartosci (tablica att jest zawsze pusta). Dlaczego tak jest? Jak wypisac zawartosc pola np. nazwisko?
Struktura dokumentu xml wyglada mniej wiecej tak :

<zbior_osob>
	<osoba>
		<nazwisko>Nowak</nazwisko>
		<imie>Jan</imie>
		<plec>M</plec>
		<pesel>75030472038</pesel>
		<data_urodzin>1975/03/04</data_urodzin>
		<obywatel>T</obywatel>	
	</osoba>

Z góry dzięki za kazdą wskazówke.

0

Jest tak poniewaz imie, nazwisko itp to elementy, a nie atrybuty, a w Twojej metodzie pytasz tylko i wylacznie o element osoba.

0

no właśnie ale jak zapytam o imie czy nazwisko itd to nic się nie zmienia... Również atrybuty są puste.

	public void startElement(String uri, String localName, String qName, Attributes att)
          		{
          			System.out.println(qName);
          			
          			if (qName.equals("imie") && att.getLength()!=0)
          			{
          				System.out.println("Jestem tu!");
          				for (int i=0 ; i< att.getLength() ; i++)
          				{
          					System.out.println("i tu!");
          					String aname = att.getLocalName(i);
          					System.out.println(att.getValue(i));
          				}
          			}
          		}

Po zmienieniu osoby na imie też nic się nie dzieje;/ A powinno się chyba wypisac imie, nie?

Już rozumiem - chwile zajęło niestety... A jak w takim razie zapytać o atrybuty?

0

W Twoim przykładzie nie ma ani jednego atrybutu (att.getLength() jest zawsze równe 0)

To są ELEMENTY.

Przykład elementu z dwoma atrybutami:

<osoba nazwisko="Nowak" imie="jan"/>
0

Serdeczne dzięki za wyjaśnienie o co w tym wszystkim chodzi! Już wszystko gra idealnie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1