Zum Inhalt springen

C# Methode um XML zu strukturieren


ytmfb

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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..

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...