ytmfb Geschrieben 22. Januar 2014 Geschrieben 22. Januar 2014 Hallo Leute, Ich habe eine Anwendung geschrieben die aus einem Webbrowser lesbaren XML Code macht. Allerdings ist die Ausgabe zusammenhängend, das heißt es ist keinerlei Struktur in dem XML Code. Nun zu meiner Frage : Gibt es für C# eine Methode die ich einbinden kann die beispielsweise nach jedem Tag einen Zeilenumbruch macht, damit ich Struktur in den XML Code bekomme, oder könnt ihr mir Stichworte nennen wonach ich für dieses Problem suchen soll? freundlicher gruß ytmfb Zitieren
Goulasz Geschrieben 22. Januar 2014 Geschrieben 22. Januar 2014 Hi ytmfb! Ist das valides XML, was du über die entsprechenden Klassen aufbereitest oder über Schleifen und Bastelei erzeugte Strings? Und was genau meinst du mit "aus einem Webbrowser lesbaren XML Code machen"? Bei letzterem kann ich dir nur dringend raten, deinen Code hingehend der Verlinkung komplett zu refaktorisieren. Grade, wenn es sich um längere Dokumente handelt. Gruß, Goulasz Zitieren
ytmfb Geschrieben 22. Januar 2014 Autor Geschrieben 22. Januar 2014 nunja es ist XML aus der Datenbank von einem SharePoint Server. Die Ausgabe erfolgt in dem Webbrowser Steuerelement meiner Windows Forms Anwendung in Visual Studio 2010 ( C# ). Allerdings verunstaltet es mir die Ausgabe beim abspeichern des Codes in ein Textdokument. Entweder fügt er noch Informationen hinzu die der IE / Browser benötigt beim interpretieren oder sämtliche Syntax geht verloren weil der Text aneinanderhängend ist ( keine Zeilenumbrüche ). <tag>test</tag><tag2>test2</tag2>... endlos lang. Ich bräuchte quasi an jeder stelle wo ein tag zugeht einen Zeilenumbruch damit ich wenigstens eine überschaubare Struktur im Textdokument habe <tag> test </tag> <tag2> test2 </tag2> Einrückungen wären egal. Hoffe ich konnte mich präziser ausdrücken. Gruß, YTMFB Zitieren
SilentDemise Geschrieben 22. Januar 2014 Geschrieben 22. Januar 2014 wie speicherst du die denn in der datei, welches dateiformat und was für ein Encoding? Zitieren
ytmfb Geschrieben 22. Januar 2014 Autor Geschrieben 22. Januar 2014 Das war mein Ansatz, allerdings kommt am ende nicht der Code raus wie er beim Debuggen mit Breakpoint in der Variable steht - private void buttonSaveAs_Click(object sender, EventArgs e) { SaveFileDialog SFD = new SaveFileDialog(); SFD.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"; SFD.FilterIndex = 1; SFD.RestoreDirectory = true; if (SFD.ShowDialog() == DialogResult.OK) { string path = SFD.FileName; string text = txtOuput.Text ; System.IO.File.WriteAllText( path, txtOuput.Text); } } Die Ausgabe sieht allerdings so aus : 14.0.0.7106.0.0<FieldRef Name="test"/><FieldRef Name="_test" ColName="test"/><FieldRef Name="test"/><FieldRef Name="test" ColName="test"/><FieldRef Name="test" ColName="test"/><FieldRef Name="test" ColName="test" ... etc Anstatt 14.0.0.7106.0.0 <FieldRef Name="test"/> <FieldRef Name= "test"/> <FieldRef Name="test"/> etc.. Zitieren
ytmfb Geschrieben 22. Januar 2014 Autor Geschrieben 22. Januar 2014 private void buttonSaveAs_Click(object sender, EventArgs e) { SaveFileDialog SFD = new SaveFileDialog(); SFD.Filter = "xml files (*.xml)|*.xml|All files (*.*)|*.*"; SFD.FilterIndex = 1; SFD.RestoreDirectory = true; if (SFD.ShowDialog() == DialogResult.OK) { // insert \n string text = txtOuput.Text; string pattern = "</(?<tag>.*?)>"; string replacement = "</{tag}>\n"; Regex rgx = new Regex(pattern); string result = rgx.Replace(text, replacement); result = result.Replace("/>", "/>\n"); string path = SFD.FileName; System.IO.File.WriteAllText( path, text); } } Habs mal mit Regex versucht, klappt allerdings auch nicht wirklich Zitieren
SilentDemise Geschrieben 22. Januar 2014 Geschrieben 22. Januar 2014 Das ist kein Problem deiner Tags, sondern wie du es auf die Platte schreibst. Du kümmerst dich weder um Format, noch um Encoding und erwartest das ein browser aus einer .txt Datei ohne Formatierungsangaben eine andere Darstellung wählt. Das kann nicht gehen. Zitieren
ytmfb Geschrieben 23. Januar 2014 Autor Geschrieben 23. Januar 2014 Ah, hat sich nun gelöst. Das Problem war das die Ausgabe in XML direkt in HTML interpretiert wird. Speichere ich die Datei nicht als XML oder TXT ab sondern als HTML klappt es. Zitieren
SilentDemise Geschrieben 23. Januar 2014 Geschrieben 23. Januar 2014 Aber verstanden, was du falsch machst, hast du anscheinend immer noch nicht. Zitieren
Jimbo0915 Geschrieben 23. Januar 2014 Geschrieben 23. Januar 2014 Jo und das ist der Grund warum in jeder Stellenbeschreibung im Internet dann am besten ein Master Abschluss benötigt wird, mit 60 Jahren Berufserfahrung etc. Zitieren
steinadler Geschrieben 24. Januar 2014 Geschrieben 24. Januar 2014 Der XmlWriter kann über XmlWriterSettings auch Zeilenumbrüche und Einrückungen schreiben. Man könnte das Dokument über XmlReader einlesen und mit einem entsprechend eingestellten XmlWriter das ganze wieder weg schreiben. Zitieren
ytmfb Geschrieben 24. Januar 2014 Autor Geschrieben 24. Januar 2014 Jo und das ist der Grund warum in jeder Stellenbeschreibung im Internet dann am besten ein Master Abschluss benötigt wird, mit 60 Jahren Berufserfahrung etc. Weiß nicht was du damit sagen willst, bin gerade mal in meiner Ausbildung & kann leider nicht alles wissen Der XmlWriter kann über XmlWriterSettings auch Zeilenumbrüche und Einrückungen schreiben. Man könnte das Dokument über XmlReader einlesen und mit einem entsprechend eingestellten XmlWriter das ganze wieder weg schreiben. Ich guck mir das mal an danke Zitieren
lilith2k3 Geschrieben 26. Januar 2014 Geschrieben 26. Januar 2014 Guck Dir die Klasse an, dann wirst Du froh: XDocument-Klasse (System.Xml.Linq) Zitieren
Jimbo0915 Geschrieben 26. Januar 2014 Geschrieben 26. Januar 2014 Weiß nicht was du damit sagen willst, bin gerade mal in meiner Ausbildung & kann leider nicht alles wissen Entschuldige bitte, das kam ein bisschen Sch...e von mir rüber, nichts für ungut. Keiner von uns kann alles wissen, das verlangt auch keiner. Es wirkte so, dass du den Fall, trotz SilentDemise' Tipp, "abgeschlossen" hattest, nach dem der Browser für dich die Dokumentenstruktur erahnt hatte. 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.