2016-04-14 18 views
0

Zeichenfolge sample = "name mike"neue Zeile für XML-Format

wenn ich die Ausgabe in der Konsole sehen es wie <name></name><mike></mike> zeigt Aber ich möchte die Ausgabe wie

<name></name> 
<mike></mike> 

-Tags in der nächsten Zeile kommen doesnot in der Konsole.

+8

Verwenden Sie Json.Net, um die JSON-Eingabe für Objekte zu deserialisieren, und verwenden Sie dann XmlSerializer, um die Objekte in XML zu serialisieren. –

+4

PS dies ist keine gültige JSON-Datei - keine Doppelpunkte, keine Anführungszeichen um Namen oder String-Werte. Sie können es nicht mit einer Json Bibliothek –

+0

Ups analysieren. Dann gibt es eine Möglichkeit, dies zu konvertieren, um die gewünschte o/p, die ich gepostet habe. – stackdoubt

Antwort

2

Das erste was Sie brauchen ist eine korrekte json, das bereitgestellte Beispiel nicht korrekt ist, sollte es so aussehen:

{ 
    "Name": "Mike", 
    "age": 19, 
    "gender": "male" 
} 

die json.net Bibliothek, die Sie hier finden: http://www.newtonsoft.com/json

Öffnen Sie die Datei und deserialisieren Sie sie in XML, indem Sie Newtonsoft.Json.JsonConvert.DeserializeXNode verwenden und den RootElementName angeben, der in Ihrem Fall Person oder der Name der Klasse sein sollte.

Sie werden so etwas wie dieses:

<person> 
    <Name>Mike</Name> 
    <age>19</age> 
    <gender>male</gender> 
</person> 

Beispiel:

System.IO.File.WriteAllText(resultPath, Newtonsoft.Json.JsonConvert.DeserializeXNode(System.IO.File.ReadAllText(fileRequested),"person").ToString()); 
0

Wenn Sie Ihre Eingabe immer gleich aussieht könnte man es mit einem einfachen regulären Ausdruck auf diese Weise versuchen:

Regex r = new Regex(@"\{(\w+)\s(\w+)\}"); 
string input = @"{ {Name Mike} {age 19} {gender male}}"; 
string outputTemplate = @"<a text = ""{0}"" value = ""{1}"" />"; 
if (r.IsMatch(input)) 
{ 
    foreach (Match match in r.Matches(input)) 
    { 
     string key = match.Groups[1].Captures[0].Value; 
     string value = match.Groups[2].Captures[0].Value; 

     Console.WriteLine(outputTemplate, key, value); 
    } 
}