Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi XML "String Wurst" formatieren (https://www.delphipraxis.net/137757-xml-string-wurst-formatieren.html)

himitsu 28. Jul 2009 11:34

Re: XML "String Wurst" formatieren
 
hätte auch noch via Hier im Forum suchenhimXML sowas bieten können ... via Standardeinstellung sieht es ja so aus diese Formatierungen werden beim Auslesen ignoriert
Delphi-Quellcode:
xml: TXMLFile;

xml := TXMLFile.Create;
xml.LoadFromFile(...);
xml.SaveToFile(...);
xml.Free;
aber hierzu
Delphi-Quellcode:
xml.Text := AnsiReplaceText(xml.Text,'<',#13#10 + '<');
xml.Text := AnsiReplaceText(xml.Text,#13#10 + '</','</');
xml.Text := AnsiReplaceText(xml.Text,'></','>' + #13#10 + '</');
die Zeile 1 entspricht der Zeile 2, also werden bei </ 2 Leerzeilen davor eingefügt

und die dritte Zeile macht nie was, da Zeile 1&2 ebenfalls diesem Muster entsprechen, demnach schon Umbrüche eingefügt sind und es keine ></ mehr gibt.

t4rI 28. Jul 2009 12:58

Re: XML "String Wurst" formatieren
 
@ Luckie
Ja du hast schon Recht mit dem was du sagst/schreibst!
Doch ich muss die Dateien auch so auslesen können, da ich auch gerade ein Programm schreibe um XML's zu erstellen und ich schauen möchte ob das
Programm alles Richtig macht!
Das ist ein wenig umständlich wenn die Formatierung nicht stimmt. :drunken:

Aber nochmal vielen Dank für die schnelle Hilfe!!!
Gruß
t4rI

Bernhard Geyer 28. Jul 2009 13:00

Re: XML "String Wurst" formatieren
 
Zitat:

Zitat von t4rI
Doch ich muss die Dateien auch so auslesen können, da ich auch gerade ein Programm schreibe um XML's zu erstellen und ich schauen möchte ob das
Programm alles Richtig macht!
Das ist ein wenig umständlich wenn die Formatierung nicht stimmt. :drunken:

Dann zie die Datei doch auf den IE oder Firefox. Der wird dir schon melden ob das XML passt oder nicht.

Kalfany 28. Jul 2009 13:06

Re: XML "String Wurst" formatieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also wenns nicht gleich ein eigenes Programm sein soll, Notepad++ kann das auch. Dazu müssen nur die Notepad++ Erweiterungen installiert sein.

TextFX -> TextFX HTML Tidy -> Tidy: Reindent XML


@Luckie
Manchmal möchte man aber etwas an der Datei etwas von Hand ändern, du hast sicher auch schon mal die Config-Datei von einem Programm angepasst (egal ob ini oder xml) ... gäb jetzt viele Gründe ...

auch sind solche XML-Dateien mehr als unschön (und die paar Whitespaces machen eine XML-Datei auch nicht mehr fett :D ) denn manche Parser haben ein Problem wenn eine 5MB XML-Datei aus nur einer Zeile besteht.

t4rI 28. Jul 2009 13:12

Re: XML "String Wurst" formatieren
 
@ Bernhard

Genau das was Kalfany geschrieben hat war das Problem was ich hatte!
Natürlich kann ich mit IE oder Firefox die XML öffnen, die mir dann auch schön als Tree wiedergegeben wird, doch kann ich diese dann auch bearbeiten ? :gruebel: ^^

Gruß
t4rI

mjustin 28. Jul 2009 14:10

Re: XML "String Wurst" formatieren
 
Zitat:

Zitat von Luckie
Mal was anderes. Wozu der Aufwand? XML-dateien sind eiegntlich nicht dafür gedacht von Menschen gelesen und bearbeitet zu werden. Sie sind ursprünglich dazu gedacht gewesen, um daten zwischen Programmen austauschen zu können. Und dem Programm ist es egal, wie die XML-Datei formatiert ist.

Die XML Spezifikation läßt eigentlich eher den Schluss zu, dass XML auch gerade die nichtmaschinelle Leserschaft anspricht: ein XML-Dokument besteht aus Textzeichen, im einfachsten Fall ASCII, und ist damit menschenlesbar – Binärdaten enthält es per Definition nicht.

Viele Konfigurationsdateien für Anwendungen werden im XML Format bereitgestellt, was die Validierung erleichtert, aber editiert werden sie aber nicht mit darauf zugeschnittenen Editoren. Das ist eher die Ausnahme und nur bei sehr weit verbreiteten Formaten gängig, wie z.B. Deploymentdeskriptoren oder Loggerkonfigurationsdateien.

Luckie 28. Jul 2009 14:41

Re: XML "String Wurst" formatieren
 
Zitat:

Zitat von mjustin
aber editiert werden sie aber nicht mit darauf zugeschnittenen Editoren.

Nein, aber mit dem Programm selber, was sie erstellt bzw. ausliest. Wenn ein Programm seine Konfiguration in XML-Dateien speichert, dann ist das Programm selber der Editor und Leser/Auswerter. Und wenn ich gucken will, ob das so stimmt, was mein programm schreibt, kann ich die Datei im Browser öffnen.

p80286 28. Jul 2009 16:01

Re: XML "String Wurst" formatieren
 
Zitat:

Zitat von Luckie
Nein, aber mit dem Programm selber, was sie erstellt bzw. ausliest. Wenn ein Programm seine Konfiguration in XML-Dateien speichert, dann ist das Programm selber der Editor und Leser/Auswerter. Und wenn ich gucken will, ob das so stimmt, was mein programm schreibt, kann ich die Datei im Browser öffnen.

Naja nicht ganz, wenn z.B. die DTD weit und breit nicht verfügbar ist, dan haben Browser schon ein Problem.
Zitat:

Zitat von Luckie
Sie sind ursprünglich dazu gedacht gewesen, um daten zwischen Programmen austauschen zu können.

Und da ist's kein Fehler in die XML-Datei reinschauen zu können.

Gruß
K-H

t4rI 29. Jul 2009 08:32

Re: XML "String Wurst" formatieren
 
Eine weitere Frage wäre ....
wie bekommt man die "String Wurst" wieder hin um es für andere wieder schwer leserlich zu machen ^^
ich denke da setzt ich mich jetzt mal dran :D

Gruß
t4rI

nahpets 29. Jul 2009 09:19

Re: XML "String Wurst" formatieren
 
Zitat:

Zitat von himitsu
Delphi-Quellcode:
xml.Text := AnsiReplaceText(xml.Text,'<',#13#10 + '<');
xml.Text := AnsiReplaceText(xml.Text,#13#10 + '</','</');
xml.Text := AnsiReplaceText(xml.Text,'></','>' + #13#10 + '</');
die Zeile 1 entspricht der Zeile 2, also werden bei </ 2 Leerzeilen davor eingefügt

und die dritte Zeile macht nie was, da Zeile 1&2 ebenfalls diesem Muster entsprechen, demnach schon Umbrüche eingefügt sind und es keine ></ mehr gibt.

Wieso:
Die erste Zeile macht aus < Zeilenumbruch plus <.
Die zweite Zeile macht aus Zeilenumbruch plus </ ein </, entfernt also einen von </ gefolgten Zeilenumbruch.
Danach kann es daher wieder ein ></ geben, was in der dritten Zeile zu einem > plus Zeilenumbruch plus </ wird.

Zitat:

Zitat von t4rI
Eine weitere Frage wäre ....
wie bekommt man die "String Wurst" wieder hin um es für andere wieder schwer leserlich zu machen ^^

Schmeiß doch alle Zeilenumbrüche raus:
Delphi-Quellcode:
xml.Text := AnsiReplaceText(xml.Text,#13#10,'');
@Luckie
Bei fremden XML-Dateien finde ich es zuweilen durchaus sinnvoll und angenehm, sie mal im Editor richtig lesen zu können, zumal, wenn ich fehlerhafte XML-Dateien bekomme und sie händisch oder per Programm korrigieren muss.
Im Browser bekomme ich nur korrekte Dateien geöffnet, bei fehlerhaften wird ein Hinweis auf die Fehlerstelle gegeben, aber korrigieren muss man die Fehler dann in der "Wurst".


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:01 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz