TravelGuide-Konverter (*.xml -> *.db3); Version 0.9

  • TravelGuide-Konverter


    Konvertierung (Import) 'älterer' TravelGuide-Daten im *.xml-Format in die SQLite-Datenbank 'travelguide_de.db3' des 'Merian scout' (ab GoPal V5.5 bzw. Zeitstempel 07.03.2010).


    Anzeige der DB-Daten:


    Anzeige der XML-Daten:


    Vorbemerkungen:


    Mich hat's gereizt, ein Tool zu schreiben, mit dem die bisherigen *.xml-Dateien in die 'travelguide_de.db3' übertragen werden können, um u.a. auch zu gewährleisten, dass sich weiterhin das Erstellen dieser Daten lohnt. ;)


    Allerdings gab es dann bei der Umsetzung doch so einige Probleme, mit denen ich im Vorfeld nicht wirklich gerechnet hatte. :022: Daher können aktuell nur alle MEN_*-Dateien übernommen werden, leider noch keine TV?_*.xml (TravelCar, TravelShopper, TravelTRANS,...).
    Das liegt vor allem daran, dass bei meiner akt. TG-Version (s.u.) von Medion nach der Auswahl einer Stadt nicht nach den dort verwendeten Kategorien gefiltert wird (ebensowenig beim Reiseführer -> 'content_providers')! Ergo, es wird bei Städten & Kategorien immer alles angezeigt.
    Aber, bei den 'POIs' bzw. den Texteinträgen (-> 'info_items') wird sehr wohl nach dem 'Reiseführer' gefiltert - wohl wg. des Icons. :denk_002:


    Hätte ich jetzt alle Dateien 1:1 übernommen, wäre es sehr unübersichtlich geworden. Denn bei dann fehlenden Einträgen in 'info_items' zu einer bestimmten Kategorie kommt es zum 'Fehler' -> "keine Treffer zu Ihrer Auswahl vorhanden", weil halt nicht jede Datei Daten zu allen Kategorien enthält!


    Wie geschrieben, wird leider auch nicht nach der ID des 'content_provider' gefiltert, denn sonst hätte man nämlich schön die anderen *.xml-Dateien (TVT_*, TVC_*, TVK_*, ...) getrennt eintragen können, mit eig. Kategorien (PLZ... bspw.).
    Weiterhin wird die Anzeige der Kategorien nach Namen sortiert, nicht nach einem internen Attribut (Sort-Index).


    Ich hoffe, Medion wird das Manko der fehlenden Filter in einer der nächsten TG-Versionen korrigieren!


    Aber warum Medion überhaupt den (neuen) Weg mit der Datenbank gegangen ist, ist mir ein Rätsel! :017: 1. ist es jetzt ziemlich gekapselt und nicht mehr so ohne weiteres erweiterbar (oder war das Absicht? :denk_001:) und 2. leidet die Performance auch mit zusätzl. Einträgen gewaltig. :022:


    Mein Tipp daher an diejenigen, die noch eine gültige TG-XML-Lizenz besitzen, setzt diese weiterhin - parallel - ein!


    Vorgehen:
    Jede Stadt aus dem TravelGuide erhält einen Zusatz 'TG', der ihn in der Übersicht eindeutig kennzeichnet. Bei solchen Einträgen muss der Eintrag unter 'Reiseführer' zwingend auf 'TravelGuide' gestellt werden, sonst kommt es zum Fehler "keine Treffer zu Ihrer Auswahl vorhanden"!


    Anmerkung: Eine Alternative wäre, beim Reiseführer nicht zw. dem 'Merian scout' und dem 'TG' zu unterschieden. Wie ich hier generell noch weiter verfahren werde, weiß ich aktuell noch nicht.
    Ich stelle das Vorgehen mal zur Diskussion, denn vlt. gibt es auch den rechtl. Aspekt zu berücksichtigen, nicht alles unter dem Merian scout 'aufhängen' zu dürfen.


    Weitere Probleme:


    Geänderte Kategorien:


    Getestete Version vom Merian scout:


    Alle Daten, die bisher über definierte xml-TAG's ihrer jew. Bedeutung zugeordnet waren, werden jetzt in einzelnen Tabellen gespeichert. Damit wird klar, dass eigene TAG's, die so im ursprünglichen Schema (DTD) nicht vorgesehen waren, umgewandelt bzw. bereinigt werden müssen, damit sie korrekt zugeordnet werden können.


    Aus Zeitgründen werde ich nur in Ausnahmefällen Korrekturtipps für einzelne XML-Dateien geben (bin aber selber nicht so der XML-Experte), aber sicherlich keine korrigierte Fassungen hier zum Download anbieten (außer, der Autor ermächtigt mich dazu).
    Dieser Thread kann aber dazu genutzt werden, einzelne Passagen geänderter Dateien zu posten.


    Hier einige Beispiele dafür:


    Vorbereitung:
    1. beiliegende Grafik '\PNA\icon_travelguide.png' ist nach \My Flash Disk\navigation\multimedia\travelguide\Executable\resources\icons\ zu kopieren


    2. alle bisher im 'TG' benutzen Bilder in ...\TravelGuide\database\*.png nach \My Flash Disk\navigation\multimedia\travelguide\CONTENT\MEDIA\PICTURES\TravelGuide kopieren


    3. die Datenbank 'travelguide_de.db3' und alle zu importierenden *.xml-Dateien müssen auf dem PC gespeichert sein, am besten in separaten Verzeichnissen. Diese Angaben sind in der 'TG-Konverter.exe.config' anzugeben!


    4. alle 'TG-Bilder' von \Travelguide\DATABASE\*.png nach "\My Flash Disk\navigation\multimedia\travelguide\CONTENT\MEDIA\PICTURES\TravelGuide" kopieren


    Setup:
    - .NET Framework 4.0 muss installiert sein (dotNetFx40_Full_x86_x64.exe, knapp 50MB)
    - TG-Konverter.zip entpacken (es ist kein Install notwendig)
    - Mindestauflösung des Displays aufgrund der komplexen Ansichten mind. 1200x800. Sollte noch jemand mit 1024x768 unterwegs sein ;), kann versuchen, die \Settings.xml anzupassen, aber viel kleiner darf's nicht werden, wg. der Überlappungen.



    Wichtige Hinweise zur Benutzung des TG-Konverter:

    • Vor der Benutzung die Hinweise im TG-Konverter.pdf lesen.
    • Bei dem Import am besten in 50er-Schritten vorgehen, aus Zeitgründen (3 Dateien brauchen bei mir knapp 2min.!!). Da sich das Programm merkt, welche Dateien bereits importiert wurden, kann sich die Auswahl auch überschneiden.
    • das Einlesen der Datenbank (~32MB) dauert je nach PC mind. 2 min.!
    • Sinnvoll bei großen Dateimengen bzw. bei schweren Fehlern, den Aufrufparameter "-logging" zu benutzen; geloggt wird im Prg.-verz. \TG-Konverter\Log
    • Excel-Export vor dem DB3-Import zum Check der XML-Dateien (ist nun nach einer Code-Änderung nicht mehr notwendig)


    Aussehen und Benutzung im 'Merian scout':



    Genereller Hinweis (Disclaimer):
    Dieses Tool wird von mir kostenlos zur Verfügung gestellt (Freeware). Das Copyright dieser Software liegt bei mir und diese Software darf nur mit meiner schriftlichen Genehmigung auf anderen Seiten / Plattformen im Internet zur Verfügung gestellt werden! Reverse-Engineering oder jegliches Verändern des Quellcodes ist strikt untersagt!
    Mit dem Download dieser Datei werden diese Bestimmungen anerkannt!



    Hier geht's zum Download. Viel Spass!



    Ach ja, wer's einsetzt und damit zufrieden ist (reine DL-Zahlen bringen das nicht zum Ausdruck), sollte es hier mit einem <Danke> auch zeigen. Für mich ist dadurch erkennbar, wer es denn tatsächlich ernsthaft nutzt und ob sich eine mögliche Weiterentwicklung überhaupt lohnt.

  • Wow ich bin begeistert, sieht richtig klasse aus. :023:
    :Respekt: :Respekt: :Respekt: :Respekt:


    Muss ich später unbedingt ausprobieren.
    Da sollte sich Medion mal ne Scheibe von abschneiden.

    Gruß Navirunner

    GoPal Wiki
    Tipps und Hilfen reinschauen lohnt sich

    **** Bitte keine Supportanfragen per PN, nur über's Forum! ****
    ******** Dann haben auch alle anderen was davon **********

  • :Respekt::top_001:
    Super Arbeit.


    Ich hatte mich schon gewundert, dass du nur sporadisch in letzter Zeit da warst.:icon_mrgreen:

  • Danke für Euer Lob! :top_002: Stimmt, das hat schon einiges an freien Zeitressourcen in Anspruch genommen. Parallel bin ich aber auch dienstlich wieder im 'Stress' und das aktuelle 'P'-Thema ist bei mir auch nicht so hoch priorisiert. :002:

  • Top, bei mir funktioniert es, aber ich habe eben das von die beschriebene Problem,dass wenn ich auf Travelguide umstelle, um die Meldung "keine Treffer zu Ihrer Auswahl vorhanden" nicht zu bekommen, die Kategorie Sehenswürdigkeiten nicht vorhanden ist. Ich umgehe das, indem ich unter Merian die Kategorie Sehenswürdigkeiten einstelle und dann erst auf Travelguide umstelle. Das ist aber wahnsinnig umständlich. Kann ich es mit dem Konverter einstellen, dass die Kategorie Sehenswürdigkeitenunter Merian ID 1 und Travelguide ID 3 (content_providers) zu sehen ist. Bin schon froh, dass ich es überhaupt so weit geschafft habe, aber die Anleitung von Dir ist auch für einen Laien nachvollziehbar. Hast du eine Lösung??
    PS: Die Burgen und Schlösser (bzw. MEN_DE_BL_Thüringen) tauchen dann nirgends auf.


    TOP Arbeit von Dir

  • Kann ich es mit dem Konverter einstellen, dass die Kategorie Sehenswürdigkeitenunter Merian ID 1 und Travelguide ID 3 (content_providers) zu sehen ist. Bin schon froh, dass ich es überhaupt so weit geschafft habe, aber die Anleitung von Dir ist auch für einen Laien nachvollziehbar. Hast du eine Lösung??
    PS: Die Burgen und Schlösser (bzw. MEN_DE_BL_Thüringen) tauchen dann nirgends auf.


    Nun, der Konverter ändert natürlich nix an den intern vorhandenen IDs, außer der neuen '3' für den 'TG', die von mir vergeben wurde. Und natürlich läßt sich alles umhängen, aber dazu muss dann überall diese 'id' (bspw. die info_items.content_provider_id oder categories.content_provider_id) geändert werden, damit die Verknüpfungen wieder passen. Dies könnte man auch über direkte Update-Befehle versuchen:

    Code
    update categories set content_provider_id = 6 where content_provider_id = 1;
    update categories set content_provider_id = 1 where content_provider_id = 3;
    update categories set content_provider_id = 3 where content_provider_id = 6;


    Und natürlich die ID in content_provider, das könnte schon reichen.


    Man könnte sicher noch weitere Features in den Konverter einbauen, wenn sich ein Komplett-Import zumindest aller Städte-Daten lohnen würde. Aber aufgrund der immer noch vorliegenden Bugs, Unzulänglichkeiten und dann auch den Performanceproblemen lohnt leider auch kein weiterer Ausbau.

  • vielen Dank für die superschnelle Antwort:023:. Ich werde mal experimentieren. Ich hoffe, ich nerve nicht mit meinen vielen Fragen?:dontknow:
    Hast du ne Ahnung, warum die Burgen und Schlösser (bzw. MEN_DE_BL_Thüringen) nirgends auftauchen. Jedenfalls finde ich sie nirgends:denk_002:


    ich probiere erst noch mal.


    ich wünsche dir auf alle Fälle ein schönes WE

  • Hast du ne Ahnung, warum die Burgen und Schlösser (bzw. MEN_DE_BL_Thüringen) nirgends auftauchen. Jedenfalls finde ich sie nirgends:denk_002:


    Ja, hab ich! :icon_mrgreen:


    Im \Log\_Allgemein_Import.log stehen "Dateien, die aktuell leider noch nicht importiert werden können:". Dazu gehören (neben den genannten TV?_*.xml und MEN_DE_AI_*.XML und MEN_DE_B+S_*.xml) auch die 4 MEN_DE_BL_*.xml. Deren XML-Struktur weicht so von den anderen ab, dass ich dafür eine extra Behandlung einbauen müsste und darauf habe ich bisher verzichtet
    Da eben bestimmte Dateien ausgenommen sind, kommt es beim Import auch nicht zum Fehler und er zeigt zum Schluss ein positives Importergebnis an. Das müsste ich vlt. mal korrigieren, andererseits steht's ja im Log drin. ;)



    Zitat

    ich wünsche dir auf alle Fälle ein schönes WE


    Ebenfalls!

  • Kann ich die Datenbank 'travelguide_de.db3' auf die Speicherkarte legen und was muss ich da tun. Der Travelguide öffnet nämlich schon nicht mehr. Ich habe wahrscheinlich zu viele Städte mit aufgenommen.
    Danke für eine Antwort

  • Kann ich die Datenbank 'travelguide_de.db3' auf die Speicherkarte legen und was muss ich da tun.


    ->> http://www.gopal-navigator.de/…lagerung_auf_die_SD-Karte



    Zitat

    Der Travelguide öffnet nämlich schon nicht mehr. Ich habe wahrscheinlich zu viele Städte mit aufgenommen.


    Das kann durchaus sein (passiert zumeist ab ~30 zus. Einträgen), aber auch ein Fehler beim Import könnte die Ursache sein. Und nicht nur deswegen kann mein Utility auch einzelne Städte löschen .

  • Danke, es funzt wieder.
    Hm, finde keinen Ansatz, wo ich bzw. eine Änderung in content_providers oder categories vornehmen kann. ich kann zwar mit der rechten Maustaste auswählen (Tabelle speichern oder neu einwählen), aber es passiert nichts.
    Wo kann ich die von dir angesprochenen direkten Update-Befehle eingeben. Bin auf diesem Gebiet leider absoluter Laie

  • Nee, der Konverter kann's (noch) nicht! Du musst es also direkt auf der DB machen und hier helfen Dir vlt. die Wiki-Tipps zur Fav.-DB weiter (destinations.db), ist auch eine SQLite-DB.
    -> http://www.gopal-navigator.de/…s._aus_GoPal_4.x_oder_5.x Am besten geht's mit dem FF-AddOn SQLite Manager. Nur, man braucht etwas DB- & SQL-Erfahrung, aber probier's mal aus.

  • Hallo Ralf,
    ich habe jetzt erstmals Deinen Converter ausprobiert. Alle Achtung, Klasse-Tool.


    Ich habe aber, nachdem ich die erste Stadt in die Datenbank importiert habe, das Problem, dass der Start von Travelguide und auch die Auswahl der Städte bzw. Kategorien deutlich länger dauern als vorher.


    Ist das nur bei mir so?

  • Hallo Ralf,
    ich habe jetzt erstmals Deinen Converter ausprobiert. Alle Achtung, Klasse-Tool.


    Danke (wobei ich mich über den <Danke>-Button auch gefreut hätte! :) )



    Zitat

    Ich habe aber, nachdem ich die erste Stadt in die Datenbank importiert habe, das Problem, dass der Start von Travelguide und auch die Auswahl der Städte bzw. Kategorien deutlich länger dauern als vorher.


    Ist das nur bei mir so?


    Nö, das war mir damals auch negativ aufgefallen und daher hatte ich es auch oben erwähnt: "...und 2. leidet die Performance auch mit zusätzl. Einträgen gewaltig."

  • Monika

    Hat das Label Travelguide / CityGuide hinzugefügt.