Veröffentlicht 9. Juni 20178 j Ein fröhliches Hallo! ich suche eine Azubi-Verständliche Lösung zu einem Problem: Ich habe XML-Dateien mit Sonderzeichen (Á, Ö, &, Ë,...), also die ganze Palette und möchte diese im XML-Stil maskieren (aus '&' wird '&' ,...). Jetzt möchte ich natürlich nicht jedes einzelne Zeichen suchen und ersetzen, gibt es da bereits eine Klasse die ich benutzen kann? Ich weiß das es einiges mit XML gibt, aber so wirklich verstehen tu ich es nicht https://msdn.microsoft.com/de-de/library/4zhk8s1x(v=vs.110).aspx Das schreibt zum Beispiel eine XML und maskiert Sonderzeichen, aber ich muss keine XML schreiben die existiert ja schon... Würde mich freuen wenn mir jemand auf die Sprünge helfen könnte. Tician Edit: Ich hab gerade gesehen das auch die Zeichen "<" und ">" so maskiert werde würden, das will ich natürlich nicht, ich will nur die Werte innerhalb der Klammern (ich hab keine AHnung was der Begriff dafür ist) maskieren. Beispiel: <blabla>Hö</blabla> Soll so aussehen: <blabla>Hö</blabla> Bearbeitet 9. Juni 20178 j von Tician
9. Juni 20178 j Lösung Du musst die XML-Datei einlesen und durch die Elemente iterieren und die, die du umgewandelt haben möchtest, mit der WebUtility.HtmlEncode()-Methode umwandeln und zum Schluss die XML-Datei neu speichern.
9. Juni 20178 j Autor Das klingt gut. Wurde 2016 veröffentlicht, kann es sein das mein VS 2015 zu alt ist? Ich kam inspiriert von deinem Link auf folgende Seite die auch ein Beispiel hat: https://msdn.microsoft.com/de-de/library/7c5fyk1k(v=vs.110).aspx Aber selbst mit den Namespaces System.Web System.IO System.Net kennt mein VS kein "WebUtility.HtmlDecode" und auch kein "HttpUtility.HtmlEncode". Auch die Mögliochkeiten zur automatischen Fehlerkorrektur die einem normalerweise auch die fehlenden Namespace anzeigt gibt mir kein Ergebnis außer die EIgenschaft oder Klasse selbst zu generieren. Bearbeitet 9. Juni 20178 j von Tician
9. Juni 20178 j Die Klasse ist Bestandteil seit .net 4.0: System.Net.WebUtility. Was ist dein Zielprofil? Was hast du für ein Projekttyp?
9. Juni 20178 j Autor Ahrgs langsam, ich bin FISI-Azubi, was ist ein Zielprofil? Projekttyp... äh Konsolenanwendung? Pseudo-unvollständiger Code (sollte aber ausreichen): using System; using System.Text; using System.IO; using Microsoft.Win32; using System.Web; using System.Net; namespace XML { class Program { static void Main(string[] args) { try { foreach (string s in line) { //data[count] = s.Replace("&", "&_;"); data[count] = HttpUtility.HtmlEncode(s); count = count + 1; } } catch (Exception ex) { Console.WriteLine(ex); Console.ReadKey(); } } } } Dieses HttpUtility wird einfach nicht erkannt. "Der Name "HttpUtility" ist im aktuellen Kontext nicht vorhanden. Edit: Das Forum interpretiert das maskierungszeichen für "&" deswegen habe ich einen Unterstrich rein gesetzt, sollte nur ein Beispiel sein. Bearbeitet 9. Juni 20178 j von Tician
9. Juni 20178 j vor 56 Minuten schrieb Tician: data[count] = HttpUtility.HtmlEncode(s); Nicht HttpUtility, sondern WebUtility Also mein VisualStudios2013 kennt es jedenfalls, wenn ich System.Net einbinde. Und es funktioniert auch einwandfrei. Was ist data[count] denn für ein Datentyp? Die Methode gibt einen String zurück, also muss data[count] auch ein String sein. Bearbeitet 9. Juni 20178 j von Rienne
9. Juni 20178 j Autor Hat funktioniert, danke! Ich scheine echt zu doof zu sein, ich könnte schwören das hatte ich auch ausprobiert... Bearbeitet 9. Juni 20178 j von Tician
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.