| 

.NET C# Java Javascript Exception

SAX Parser - Innere Klassen

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


SAX Parser - Innere Klassen

Geeronimo - 22.06.2010 16:25
Hallo, <_42_52_ /> <_42_52_ /> ich habe eine XML-Datei und möchte diese über meinen Importservice beim Starten des Programmes mit dem SAX-Parser einlesen. Mit dem XMLSlurper funktionierte alles wunderbar, war leider nur sehr langsam. Wenn ich das Groovy-Beispiel einbauen möchte : [<_41_ HREF="http://groovy.codehaus.org/Reading+XML+with+Groovy+and+SAX" REL="nofollow">groovy.codehaus.org] <_42_52_ /> <_42_52_ /> Laut [<_41_ HREF="http://it-republik.de/jaxenter/artikel/Groovy-1.7-2811.html" REL="nofollow">it-republik.de] soll man ab der Groovy Version 1.7 auch innere Klassen nutzen können. (Ich nutze Groovy 1.7, JVM: 1.6.0_17 & Grails 1.2.0) <_42_52_ /> <_42_52_ /> Wieso erhalte ich die Meldung über ein Problem mit inneren Klassen? <_42_52_ /> <_42_52_ /> <_50_52_45_ CLASS="bbcode"> [groovyc] org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed, C:\WORK\sts\CENcon\grails-app\services\ImportService.groovy: 14: Class definition not expected here. Possible attempt to use inner class. Inner classes not supported, perhaps try using a closure instead. at line: 14 column: 2. File: C:\WORK\sts\CENcon\grails-app\services\ImportService.groovy @ line 14, column 2. [groovyc] class RecordsHandler extends DefaultHandler { <_42_52_ /> Line 14 = "class RecordsHandler extends DefaultHandler {" <_42_52_ /> <_42_52_ /> Danke im voraus, <_42_52_ /> <_42_52_ /> Geeronimo <_42_52_ /> <_42_52_ /> P.S. mein Code <_42_52_ /> <_42_52_ /> <_50_52_45_ CLASS="bbcode">class ImportService { class RecordsHandler extends DefaultHandler { def messages = [] def currentMessage def countryFlag = false void startElement(String ns, String localName, String qName, Attributes atts) { switch (qName) { case 'car': currentMessage = atts.getValue('make') + ' of '; println 'currentMessagecurrentMessage: ' + currentMessage break case 'country': countryFlag = true println 'countryFlag: ' + countryFlag break case 'record': currentMessage += atts.getValue('type') + ' record' println 'currentMessage: ' + currentMessage break } } void characters(char[] chars, int offset, int length) { if (countryFlag) { currentMessage += new String(chars, offset, length) } } void endElement(String ns, String localName, String qName) { switch (qName) { case 'car': messages << currentMessage; break case 'country': currentMessage += ' has a '; countryFlag = false; break } } } def importXML(file) { def handler = new RecordsHandler() def reader = SAXParserFactory.newInstance().newSAXParser().xMLReader reader.setContentHandler(handler) def inputStream = new FileInputStream(file) reader.parse(new InputSource(inputStream)) }


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "SAX Parser - Innere Klassen" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.