smart-village-solutions / smart-village-app-converter-xml2json

Converts XML Data from TMB (Tourismus Marketing Brandenburg) to JSON Data and sends them to a JSON API
GNU General Public License v3.0
0 stars 1 forks source link

Bug in description von PointOfInterest? #17

Closed donni106 closed 3 years ago

donni106 commented 5 years ago

Der Screenshot resultiert aus den folgenden Daten:

IMG_1D166193DD70-1

{
  "id": "37",
  "name": "Thermalsoleheilbad Bad Belzig",
  "description": "Bad Belzig - Thermalsoleheilbad mit historischer Altstadt\nNur eine knappe Autostunde südwestlich vom Großstadttrubel in Berlin und Potsdam entfernt, erwarten die Gäste im Solekurort Bad Belzig, inmitten des Naturpark Hoher Fläming ebenso spannende wie entspannende Erlebnisse. Das mehr als 1000jährige frühere Ackerbürgerstädtchen hat sich mit verwinkelten Gässchen, der imposanten Burg Eisenhardt und liebevoll restaurierten Bürgerhäusern im Stadtkern seinen historischen Charme bewahrt. Den Reiz eines Stadtrundgangs durch die historische Altstadt machen vor allem die kleinen liebevollen Details  an den Bürgerhäusern aus. Auf der Entdeckungstour sind Sitznischenportale aus Sandstein, Wasserspeier, Aufzüge und Wappen alter Belziger Familien zu finden. Besonders sehenswert sind in der historischen Altstadt die Stadtkirche St. Marien, ein spätromanischer Feldsteinbau, das Geburtshaus des Komponisten Carl Gottlieb Reissigers, das originalgetreu wiederaufgebaute Rathaus und die sächsische Postmeilensäule.Burg Eisenhardt Bad Belzig\nDie sanierte Bad Belziger Burg Eisenhardt ist ein altehrwürdiges Denkmal mit viel Lebendigkeit. Ihre romantische historische Kulisse wird regelmäßig zum Schauplatz verschiedenster kultureller Erlebnisse, die Geschichte durch Musik, Tanz und Spiel lebendig werden lassen. Ein Spaziergang über die imposante Burganlage, die über viele Jahre mit großem Aufwand Schritt für Schritt saniert wurde, gerät zur spannenden Entdeckungsreise in die Geschichte. Schon im Torhaus ist ein imposantes Zellengewölbe zu bewundern. Den 24 Meter hohen Bergfried kann man besteigen und weit über den Fläming schauen. Spannend wird es in Teilen der Ringmauer und in einzelnen Wehrtürmen, denn dort geht man durch dicke Mauern. Als älteste steinerne Zeugen wurden bei Ausgrabungen im Innenhof Teile der Kernburg aus dem 13. Jahrhundert samt Kapelle im romanischen Stil freigelegt. In den Burgbrunnen kann man tief hinab schauen, den alten Gefängnishof erahnen und die mächtigen Feldsteinmauern bestaunen.SteinTherme Bad Belzig\nSeit 01. März 2010 ist Bad Belzig ein staatlich anerkanntes Thermalsoleheilbad. Mit der Eröffnung der SteinTherme Bad Belzig 2002 hat die Stadt neben der gesunden Luft ein weiteres ortsgebundenes Heilmittel - die Bad Belziger Thermalsole. In der Therme gibt es verschiedene Becken und Anwendungen mit der Bad Belziger Thermalsole, die besonders bei Beschwerden des Bewegungsapparates, Atemwegs- und Hauterkrankungen wirkungsvoll eingesetzt werden kann. Gesundheit und Wohlbefinden stehen im Mittelpunkt der Angebote der SteinTherme Bad Belzig, die von klassischen Massagen und Rückenschule über spezielle LaStoneMassagen bis zu Ayurvedaprogrammen  vielfältige Anwendungen bieten. Neben der Therme legt auch die anerkannte Reha-Klinik für Orthopädie, Psychosomatik und Rheumatologie viel Wert auf hohe medizinische Kompetenz im Kurort.Thermalsoleheilbad Bad Belzig im Naturpark Hoher Fläming\nNatürlicher Kraftquell ist zudem der Naturpark Hoher Fläming quasi vor der Haustür eines jeden Hotels, einer jeden Pension. Die einzigartige Landschaft mit ausgedehnten Wäldern, sanften Hügeln, eiszeitlichen Riesensteinen, sagenumwobenen Rummeln, klaren Quellbächen und interessanten Naturlehrpfaden kann man zu Fuß, auf dem Rad, hoch zu Roß, mit dem Kremser und immer besser auch mit dem Rollstuhl entdecken.Heilanzeigen:\n\nErkrankungen der Atemwege\n\tHerz- Kreislauf Erkrankungen\n\tRheumatische Erkrankungen\n\tErkrankungen des Stütz- und Bewegungsapparates\n\tHautkrankheiten\n\tStress- und Berufskrankheiten\n\tGynäkologische Erkrankungen\n\nPrädikat des Kurortes: ThermalsoleheilbadKureinrichtungen:\nSteinTherme Bad Belzig\nAm Kurpark 15\n14806 Bad Belzig\nTel: 033841-38800\nE-Mail: info@steintherme.dewww.steintherme.de\nReha Klinikum \"Hoher Fläming\" im Oberlinhaus\nHermann-Lielje-Straße 3\n14806 Bad Belzig\nTel: 033841-540www.rehaklinikum-oberlinhaus.de"
}

In z. B. der letzten Zeile ist erkennbar, dass die Telefonnummer und eine Webseite direkt aneinander gerendert werden. Dies ist auch in den Daten so der Fall.

\nTel: 033841-540www.rehaklinikum-oberlinhaus.de

Wird das bereits von extern so geliefert, oder schlägt da etwas beim Import fehl?

endorfin commented 5 years ago

Die Inhalte werde meines Erachtens nach 1: 1 so importiert wie sie reinkommen. Wenn was an der Stelle beim Import fehlschlagen sollte, dann wäre der Datensatz auch nicht importiert worden.

donni106 commented 5 years ago

Dann sind wir an der Stelle ziemlich machtlos, richtig!?

Ich finde online hier z. B. die selben Daten, aber richtig formatiert: https://kurorte-land-brandenburg.de/kurorte/bad-belzig/

@pwilimzig hast du eine Idee oder nimmst dich der Ursachenforschung irgendwie an?

acousma82 commented 5 years ago

Eigentlich sollten/wollten wir die xhtml daten abrufen. Die kommen hier als xhtml so rein:

SteinTherme Bad Belzig                                      
                    <br/>
Am Kurpark 15                                       
                    <br/>
14806 Bad Belzig                                        
                    <br/>
Tel: 033841-38800                                       
                    <br/>
E-Mail: info@steintherme.de                                     
                    <br/>
                    <a href="http://www.steintherme.de" target="_blank">www.steintherme.de</a>
                    <br/>
                    <br/>
Reha Klinikum "Hoher Fläming" im Oberlinhaus                                        
                    <br/>
Hermann-Lielje-Straße 3                                     
                    <br/>
14806 Bad Belzig                                        
                    <br/>
Tel: 033841-540                                     
                    <br/>
                    <a href="http://www.steintherme.de" target="_blank">www.rehaklinikum-oberlinhaus.de</a>

wenn wir es nicht als xhtml abrufen könnte es zu Formatierungsfehlern kommen.

donni106 commented 5 years ago

Sehr gut. Wir müssen in der App nichts anpassen, wenn die Daten in description dann als HTML kommen. Danke.

acousma82 commented 5 years ago

Ist damit ja erledigt

donni106 commented 5 years ago

Womit ist es erledigt?

Die Daten kommen leider noch nicht als HTML rein:

{
  "data": {
    "pointsOfInterest": [
      {
        "id": "116",
        "name": "Hotel \"Am Schloss Schmerwitz\"",
        "description": "Unweit des Hagelbergs gelegen, bietet das Hotel Wanderern, Radfahrern und Vierbeinern ideale Bedingungen, mit vielen Geschichten um die wechselvolle Historie. Es werden stilvoll eingerichtete Ein- und Zweibettzimmer mit TV/Dusche/WC & vielen Annehmlichkeiten angeboten. Eine Spezialität ist das „Bärenhunger- Frühstück“. Die Hotelanlage in einem großzügigen Waldareal ist wie gemacht für \"aktive Faulenzer\"!"
      },
      {
        "id": "110",
        "name": "Gasthof \"Zur Erholung\"",
        "description": "Der Gasthof in Werbig ist ein typisch brandenburgischer Landgasthof mit bodenständiger Küche. Besonders beliebt bei den Gästen sind die Wildgerichte."
      },
acousma82 commented 5 years ago

Es liegt aber nicht an unserem Main App server sondern dann am tmb xml, wie oben untersucht und beschrieben. Einfach nochmal die production datenbank löschen und alles neu importieren. Wir ändern die description ja nicht sondern leiten nur weiter an die app. Ich habe auch noch nochmal in den credentials nachgeschaut. Dort werden die daten in der xhtml version von der tmb api abgefragt. Ich wüsste also nicht was ich hier noch machen soll außer einmal alle daten löschen und neu imnportieren. Die Daten und damit auch die description sind so wie sie sind.

acousma82 commented 5 years ago

Was meinst Du @marcometz

acousma82 commented 5 years ago

Problem gelöst: Hier stand vorher try(:text). #text nimmt den reinen text und ignoriert die tags. Durch to_s wird die Entität der node als ganzes genommen. Wenn es html ist wird einfach html genommen wenn xml dann xml usw: https://www.rubydoc.info/github/sparklemotion/nokogiri/Nokogiri%2FXML%2FNode:to_s

acousma82 commented 5 years ago

PR folgt.

acousma82 commented 5 years ago

Wenn ich das Converter Main App Ökosystem lokal laufen lassen und von tmb importiere werden die Daten nun mit html importiert. grafik

donni106 commented 5 years ago

Problem gelöst: Hier stand vorher try(:text). #text nimmt den reinen text und ignoriert die tags. Durch to_s wird die Entität der node als ganzes genommen. Wenn es html ist wird einfach html genommen wenn xml dann xml usw: https://www.rubydoc.info/github/sparklemotion/nokogiri/Nokogiri%2FXML%2FNode:to_s

nice!

acousma82 commented 5 years ago

Ich transferiere das Issue zum xml converter, da gehört es hin

acousma82 commented 5 years ago

PR ist erstellt. Wenn der Main Appserver pr mit der update record funktion gemergt ist, dann müssen auch die POIS und Tours nicht mehr manuell vom server gelöscht werden

donni106 commented 5 years ago

Ist durch, oder @acousma82?