Archief - Java XML uitlezen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Curahee Q

Legacy Member
Beste

Voor mijn spel zou ik graag in een text-file beschrijven hoe het veld eruitziet en welke items erin zitten en dergelijke. Nu om dit te doen zou ik dit graag met xml doen aangezien dit toch een mooie standaard is.

Echter is dit voor een opdracht op school dus kan ik niet afkomen met voorgebakken klassen geript op het internet. Ik heb al wat zitten prutsen met XMLStreamReader, maar dit werkt precies toch niet echt naar behoren.

Kunnen jullie mij zeggen hoe ik dit het beste aanpak?

Ik vraag hier niet om een uitgewerkt voorbeeld, het zou al handig zijn moest ik gewoon een beetje opweg geholpen worden.

Alvast bedankt

Cycloon

Legacy Member
Curahee Q zei:
Echter is dit voor een opdracht op school dus kan ik niet afkomen met voorgebakken klassen geript op het internet.

Dat is net het mooie aan een standaard, men kan algemene code ontwerpen die voor iedereen kan dienst doen. Hergebruik binnen de informatica is net iets dat je moet uitbuiten. Alle tijd die je kan uitsparen met het uitlezen van die xml kan je in andere meer interessante zaken steken. Het heeft geen zin om telkens het wiel opnieuw uit te vinden, beter dan de huidige bestaande code zal jouw code toch nooit worden (anders was het mss wel de moeite waard).

Gurdt

Legacy Member
Cycloon zei:
Dat is net het mooie aan een standaard, men kan algemene code ontwerpen die voor iedereen kan dienst doen. Hergebruik binnen de informatica is net iets dat je moet uitbuiten. Alle tijd die je kan uitsparen met het uitlezen van die xml kan je in andere meer interessante zaken steken. Het heeft geen zin om telkens het wiel opnieuw uit te vinden, beter dan de huidige bestaande code zal jouw code toch nooit worden (anders was het mss wel de moeite waard).

Uiteraard is dat zo, maar hij zegt toch dat het een opdracht voor school is. Vaak wil men dan dat de student zelf een oplossing zoekt of wel zelf dat wiel uitvindt.

Kijk eens naar DOM parsers ;)

Cycloon

Legacy Member
De manier waarop hij het uitlegt lijkt alsof het een projectje is waar hij zelf de keuze maakt om met XML te gaan werken. Het lijkt me dus niet dat het parsen van de XML een vereiste taak is. Voor mij zou iemand die veel tijd verliest aan zulke zaken zeker geen betere score krijgen dan iemand die voor de voor reeds perfect werkende pakketten kiest die 100% zeker correct hun werk doen en veel extra zaken regelen. Je zou bv een XML schema of DTD kunnen gebruiken en gaan valideren, ik zie je zo'n validator niet eventjes snel schrijven terwijl dat wel énorm handig is (want een foute XML parsen is natuurlijk ook belachelijk :)). Nuja, het is niet mijn project, Curahee Q moet dit uiteindelijk zelf beslissen, maar ik zou het afraden om alles zelf te doen, het gaat de kwaliteit van het geheel enkel verlagen.

Scrimrage

Legacy Member
Cycloon zei:
De manier waarop hij het uitlegt lijkt alsof het een projectje is waar hij zelf de keuze maakt om met XML te gaan werken. Het lijkt me dus niet dat het parsen van de XML een vereiste taak is. Voor mij zou iemand die veel tijd verliest aan zulke zaken zeker geen betere score krijgen dan iemand die voor de voor reeds perfect werkende pakketten kiest die 100% zeker correct hun werk doen en veel extra zaken regelen. Je zou bv een XML schema of DTD kunnen gebruiken en gaan valideren, ik zie je zo'n validator niet eventjes snel schrijven terwijl dat wel énorm handig is (want een foute XML parsen is natuurlijk ook belachelijk :)). Nuja, het is niet mijn project, Curahee Q moet dit uiteindelijk zelf beslissen, maar ik zou het afraden om alles zelf te doen, het gaat de kwaliteit van het geheel enkel verlagen.

nen dikke second :D

en soms (vaak) leren die leerkrachten dan zelf nog dingen bij ;)

Curahee Q

Legacy Member
Ik kies er inderdaad zelf voor om XML te gebruiken voor mijn project. Moest het niet voor school zijn maar voor mezelf had ik al lang een jar-file gedownload die al het werk voor mij zou doen.
Voor de zekerheid zal ik het wel eens vragen in de les.

etl_mx

Legacy Member
Curahee Q zei:
Echter is dit voor een opdracht op school dus kan ik niet afkomen met voorgebakken klassen geript op het internet.

Zoals mijn leraar zou zeggen,
"Je moet het wiel niet opnieuw uitvinden."

Shaddix

Legacy Member
wij leren op school ook gewoon werken met JDom, dus iets dergelijk gebruiken lijkt mij niet verkeerd maar net goed

Curahee Q

Legacy Member
Ik heb het gevraagd en mag gewoon klasse van internet halen. Hij zei dat in dit geval DOM beter is dan SAX.
Zijn die jar-files van sun zelf goed of beter 3rd party klasse gebruiken?

Ik ben nu iets aan het maken aan de hand van deze tutorial
http://tutorials.jenkov.com/java-xml/dom.html

Kunnen jullie mij zeggen of dit iets degelijks is? Ik krijg nu al mijn elementen (recursief) uitgelezen. Indien jullie iets anders weten dat beter is, geef het gerust maar zeg er liefst ook wel bij waarom.

EagleEye

Legacy Member
Voor gewoon (gevalideerd) XML parsen zou ik zeker NIET third-party gaan, en blijven bij wat in de standaard Java SDK zit. Reden: hiervan ben je zeker dat het fatsoenlijk werkt, en fatsoenlijk getest is.

Er zijn 2 basissystemen om XML te lezen:
- Zoals de DOM parser: bouw een Document object op en werk hiermee in het programma. Voordeel: Eenvoudiger / intuïtiever. Nadeel: dit schaalt niet, aangezien het hele document object in het geheugen moet passen

- Zoals de SAX parser: laat de parser alles inlezen en werk met callbacks om de informatie terug te krijgen. Voordeel: dit werkt ook voor héél grote bestanden (zeg maar miljoenen lijnen XML), aangezien de parser enkel de huidige lijn moet bijhouden in het geheugen. Nadeel: werken met callbacks vereist een andere infrastructuur die (zeker voor beginnende programmeurs) misschien minder intuïtief werkt

Voor gewone schoolopdrachtjes zou ik het gewoon bij de DOM parser houden. Heel eenvoudig als je even googlet. :)

Curahee Q

Legacy Member
Inderdaad. Het werkt nu echt goed. Het handige is dat je gewoon een boomstructuur (NodeList) hebt met je data.

Disa

Legacy Member
Curahee Q zei:
Ik heb het gevraagd en mag gewoon klasse van internet halen. Hij zei dat in dit geval DOM beter is dan SAX.
Zijn die jar-files van sun zelf goed of beter 3rd party klasse gebruiken?

Ik ben nu iets aan het maken aan de hand van deze tutorial
Java & XML Tutorial: The DOM Parser

Kunnen jullie mij zeggen of dit iets degelijks is? Ik krijg nu al mijn elementen (recursief) uitgelezen. Indien jullie iets anders weten dat beter is, geef het gerust maar zeg er liefst ook wel bij waarom.

DOM is misschien gemakkelijker om een tree te parsen maar het is zeker niet te vergelijken met de performantie met een degelijke S(t)AX implementatie.
StAX laat je toe om XML streams te parsen ipv de hele tree in memory te houden.
Het is waarschijnlijk een beetje overkill (en nu toch te laat) voor een simpel project, maar van zodra je met grote XML files gaat werken is de performance vrij duidelijk.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan