xml格式的新行

时间:2016-04-14 11:34:26

标签: c# xml

string sample =" name mike"

当我在控制台中看到输出时,它显示为No usable spatial provider could be found. In order to use the 'DbGeography' or 'DbGeometry' spatial types the EF provider being used must support spatial types and all prerequisites for the provider must be installed. 但我希望输出像

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

标签不会出现在控制台的下一行。

2 个答案:

答案 0 :(得分:2)

你需要的第一个是正确的json,提供的例子不正确,它应该是这样的:

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

使用您可以在此处找到的json.net库:http://www.newtonsoft.com/json

打开文件并使用Newtonsoft.Json.JsonConvert.DeserializeXNode在xml中对其进行反序列化,并提供在您的情况下应为Person或类名称的rootElementName。

你会得到这样的东西:

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

示例:

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

答案 1 :(得分:0)

如果你的输入总是看起来一样,你可以用这种方式用一个简单的正则表达式来尝试:

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);
    }
}