occi23 Geschrieben 21. November 2012 Geschrieben 21. November 2012 Hallo, ich habe kaum Programmierkenntnisse, würde aber gerne eien große Zahl von NFO-Dateien (also XML) meiner Filmdatenbank anpassen. Über Google hab ich gelesen, sowas gänge über "reguläre Ausdrücke", wie genau hab ich aber nicht rausbekommen. In den NFO-Datenbanken sind u.a. Bewertungen der Internetportale aufgeführt - diese nerven mich und ich will sie weg haben. Das ganze sieht immer so aus <rating>8,2</rating>. Über einfaches Einfügen+Ersetzen geht es wegen der unterschiedlichen Bewertungen nicht. Ich nutze als Editor Notepad++. Gibt es eine Möglichkeit diese Einträge unabhägig vom Rating zu löschen, d.h. immer <rating> löschen, egal was "drin" steht? Leider befinden sich die Ratings auch nicht immer auf der gleichen Zeile, so dass man auch mit pauschalem löschen von Zeile 5 weiter kommt. Zu welcher Programmiersprache xml gehört weiß ich nicht, daher hab ichs erstmal in Windows geschrieben. Grüße occi Zitieren
Klotzkopp Geschrieben 21. November 2012 Geschrieben 21. November 2012 Da ich selber nicht viel darüber weiß, nur ein Schubser in die richtige Richtung: XSL Transformation Zitieren
flashpixx Geschrieben 21. November 2012 Geschrieben 21. November 2012 Es geht auch mit regulären Ausdrücken sofern diese vom Editor unterstützt werden. Im Wikipedia Artikel ist sehr gut beschrieben, wie ein Ausdruck erstellt wird Zitieren
occi23 Geschrieben 22. November 2012 Autor Geschrieben 22. November 2012 So, mit diesem Ausdruck "<rating>[0-9]{1}.[0-9]+</rating>" findet er jedes Rating. Wenn ich im Feld "ersetzen durch" nichts eingebe wird das Rating gelöscht, nur bleibt dann eine leer Zeile übrig. Ob das zu Problemen führt weiß ich nicht wäre aber günstig die auch wegzubekommen. Den Zeilenumbruch für Windows (\r\n) dahinter zu setzen nützt nichts. Dann wird nichts mehr gefunden. Evtl. ist es auch gar kein Zeilenumburch sondern irgendwas anderes? Zitieren
Klotzkopp Geschrieben 22. November 2012 Geschrieben 22. November 2012 Es geht auch mit regulären AusdrückenXML ist keine reguläre Sprache, da wäre ich vorsichtig. Mag sein, dass das für einfache Sonderfälle funktioniert, aber sicher ist es nicht. Zitieren
flashpixx Geschrieben 22. November 2012 Geschrieben 22. November 2012 Mag sein, dass das für einfache Sonderfälle funktioniert, aber sicher ist es nicht. Ack, nur hier soll ja im nur ein Tag entfernt werden und das geht mit regulären Ausdrücken, ansonsten nimmt man XSLT. Zitieren
occi23 Geschrieben 22. November 2012 Autor Geschrieben 22. November 2012 Den Tag entfernen kann ich, nur die Leerzeile bekomme ich nicht weg. Zitieren
occi23 Geschrieben 22. November 2012 Autor Geschrieben 22. November 2012 Ist doch etwas anders. Wenn ich den Eintrag entferne bleitb nicht nur eine Leerzeile übrig, sondern eine Leerzeile die 4 Leerzeichen enthält (zumindest wird das in Notepad++ so dargestellt). Das kommt wohl daher, dass Notepad++ die Zeilen alle etwas einrückt. Diese Leerzeichen sollten sich mit "\s{4}" entfernen lassen - was im Test auch klappte. Die Leerzeile bekomme ich dann mit Suche nach "\n\n" und ersetzen durch nichts weg - dann rückt es aber die Zeile nach der Leerzeile auf die gleiche Zeile die vorher über der Leerzeile war. Macht das irgendwas aus beim Auslesen der Daten? Zitieren
Klotzkopp Geschrieben 22. November 2012 Geschrieben 22. November 2012 Macht das irgendwas aus beim Auslesen der Daten?Grundsätzlich ja. Whitespace ist bei XML ein relevanter Teil der Dokumentstruktur. Ob es für deinen Anwendungsfall von Bedeutung ist, kann man nicht so einfach erkennen. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.