Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  7 723
Hei og hå.

Tester ut hvordan man parser XML i java. Har skrevet følgende kode:

Kode

import javax.xml.stream.*;
import javax.xml.stream.events.*;
import java.io.*;


public class xmlReader {
	public static void main(String[] args){
		
		XMLInputFactory factory;
		Reader reader;
		XMLEventReader eventReader;
		
		try{
			
			factory = XMLInputFactory.newInstance();
			reader = new FileReader("c:\\test.xml");
			eventReader = factory.createXMLEventReader( reader );	
			
			
			while(eventReader.hasNext()){
				XMLEvent event = eventReader.nextEvent();
				
				if(event.isStartElement()){
					
					
					if(event.asStartElement().getName().equals("person")) {
						
						System.out.println("PERSONER SOM ER REGISTRERT");
						System.out.println("---------------------------"); 
						continue; 
					}
					
					if(event.asStartElement().getName().equals("fornavn")){
						
						event = eventReader.nextEvent(); 
						System.out.println(	event.asCharacters().getData()	); 
					}
				

				}
}
				
		} catch (Exception e) {
			
			System.out.println("FØLGENDE FEIL SKJEDDE	" +e); 
			e.printStackTrace();
		}	
	}
}
og XML filen min ligger å roten på C disken.

Kode

<?xml version="1.0" encoding="UTF-8"?>

<personer>
	<navn>Ola Nordmann</navn>
</personer>
Men jeg får intet output, noen som kan gi meg et spark bak?

feilen ligger ikke i at jeg prøver å lese person, men XML-filen inneholder personer. Har testet dette.
Sitat av Opous Vis innlegg
Hei og hå.

Tester ut hvordan man parser XML i java. Har skrevet følgende kode:

Kode

import javax.xml.stream.*;
import javax.xml.stream.events.*;
import java.io.*;


public class xmlReader {
	public static void main(String[] args){
		
		XMLInputFactory factory;
		Reader reader;
		XMLEventReader eventReader;
		
		try{
			
			factory = XMLInputFactory.newInstance();
			reader = new FileReader("c:\\test.xml");
			eventReader = factory.createXMLEventReader( reader );	
			
			
			while(eventReader.hasNext()){
				XMLEvent event = eventReader.nextEvent();
				
				if(event.isStartElement()){
					
					
					if(event.asStartElement().getName().equals("person")) {
						
						System.out.println("PERSONER SOM ER REGISTRERT");
						System.out.println("---------------------------"); 
						continue; 
					}
					
					if(event.asStartElement().getName().equals("fornavn")){
						
						event = eventReader.nextEvent(); 
						System.out.println(	event.asCharacters().getData()	); 
					}
				

				}
}
				
		} catch (Exception e) {
			
			System.out.println("FØLGENDE FEIL SKJEDDE	" +e); 
			e.printStackTrace();
		}	
	}
}
og XML filen min ligger å roten på C disken.

Kode

<?xml version="1.0" encoding="UTF-8"?>

<personer>
	<navn>Ola Nordmann</navn>
</personer>
Men jeg får intet output, noen som kan gi meg et spark bak?

feilen ligger ikke i at jeg prøver å lese person, men XML-filen inneholder personer. Har testet dette.
Vis hele sitatet...
Er det ikke enklere å debuge koden din enn å poste den her? sett noen breakpoints og se hva som skjer
Filen din inneholder "personer" og "navn" ja, men er du 100% sikker på at det er _navn_ og _personer_ koden din leter etter?
Sist endret av pinkrabbitz; 8. juni 2011 kl. 21:35.
Trådstarter
Problemet ligger i at innmaten i if-setningen

Kode

if(event.asStartElement().getName().equals("personer"))
aldri kjøres.
Sitat av Opous Vis innlegg
Problemet ligger i at innmaten i if-setningen

Kode

if(event.asStartElement().getName().equals("personer"))
aldri kjøres.
Vis hele sitatet...
Det står "if(event.asStartElement().getName().equals("person"))" i koden du har oppgitt. Altså, person, ikke personer.

Men det er mulig dette er urelatert til problemet.

Har du prøvd å printe event.asStartElement().getName() for å se hva den inneholder?
Sist endret av danielsk; 8. juni 2011 kl. 22:24.
Trådstarter
Koden fungerer når jeg skrev inn:

Kode

if(event.asStartElement().getName().getLocalPart().equals("personer"))
Sitat av danielsk Vis innlegg
Det står "if(event.asStartElement().getName().equals("person"))" i koden du har oppgitt. Altså, person, ikke personer.
Vis hele sitatet...
Les hva jeg postet da

Om jeg nå skulle ha åpnet VG sin RSS i programmet mitt, hvordan måtte jeg gjort dette? Jeg vil tro at jeg må laste ned filen i programmet mitt for deretter å parse den.

http://www.vg.no/rss/create.php?categories=90
Sitat av Opous Vis innlegg
Om jeg nå skulle ha åpnet VG sin RSS i programmet mitt, hvordan måtte jeg gjort dette? Jeg vil tro at jeg må laste ned filen i programmet mitt for deretter å parse den.
Vis hele sitatet...
http://lmgtfy.com/?q=java+read+rss+feed&l=1
Trådstarter
Sitat av tormaroe Vis innlegg
Vis hele sitatet...
Internettets store helt.