Weiß jemand wieso sich die Datei ändert nach diesen Python Code?

...komplette Frage anzeigen PythonCode - (Python, XML) Auszug aus den Dateien - (Python, XML)

1 Antwort

Kommt darauf an, wie Du sie geändert hast. Wenn Du sie als Textfile eingelesen und manipuliert hast, dann sind die Änderungen seltsam.

Wenn Du aber einen XML-Reader und Writer benutzt hast dann kann dieser die Elemente und Attribute im XML-File nach Gutdünken umstellen, solange sich dadurch die syntaktische und ggf. durch eine Definition vorgegebene semantische Gültigkeit der XML-Datei nicht ändert.

Sollte die Reihenfolge von Elementen und Attributen durch eine Definition vorgegeben sein, dann müsste sich der XML-Writer daran halten. Wenn er das nicht tut, dann ist er in diesem Fall kein geeignetes Werkzeug zur Manipulation dieser speziellen XML-Datei.

Sollte es eine solche Definition nicht geben, dann ist die Reihenfolge von Elementen und Attributen laut XML-Spezifikation egal und darf keine Rolle spielen.


Also mein Problem ist jetzt folgendes: Ich benutze Yakindu SCT, meine ursprüngliche .sct Datei hat halt eine Grafik in Yakindu ergeben und der neue  modifizierte Code scheint nicht zu gehen, da Yakindu keine Grafik mehr anzeigt, wenn ich diesen neuen Code lade.

0
@KratzAb

Naja, dann scheint die Software eine gewisse Reihenfolge von Elementen/Attributen vorauszusetzen, welche jetzt nicht mehr gegeben ist.

Alternative Idee für Dein Python-Programm: Statt die Datei als XML zu parsen, parse sie als Textdatei durch suche manuell nach fillColor=", um die Werte danach zu ändern. Nicht schön, aber würde die Reihenfolge der Tags nicht ändern.

1

Okay erstmal Dankeschön für deine Hilfe :) . Zu deinem Vorschlag habe ich jetzt noch eine Frage : wie suche ich in der Textdatei "fillColor="   und ändere dann dahinter den Wert?  Vielleicht weißt du es zufällig bevor ich mir ein Bein ausreiße :P

0
@KratzAb

Ich bin nicht wirklich ein Python-Programmierer, so dass Du vermutlich mal wirst googeln müssen.

0
@KratzAb

Suchen & Ersetzen kann man mit jedem Editor (und mit sed geht's besonders einfach :-) ).

Wenn Du viele Ersetzungen machen willst, helfen reguläre Ausdrücke. So könntest Du alle fillColor-Einträge ändern:

Suche nach:  fillColor="[^"]*"
Ersetze mit: fillColor="255"

Der Teil [^"] passt auf alles außer ". Der Stern dahinter heißt "beliebig viele solche Treffer". Mit [0-9]* findest Du nur Ziffernfolgen, usw.

Die Syntax variiert leicht von Editor zu Editor. Am besten liest Du die zugehörige Hilfeseite Deines Editors.

0

Was möchtest Du wissen?