简体   繁体   English

转换XML <!--CDATA to DataTable C#</div--><div id="text_translate"><p> 我有 Webservice SOAP 方法,它将 Json 作为输入参数。</p><pre> //For sample string jsonString = "[{"Year":"2020","UserId":"1","Comp":"20","DeptId":"32","CategoryId":"53","ItemId":"0"}]"; string[] processString = budget.BudgetTagNet(jsonString);</pre><p> 现在“budget.BudgetTagNet(jsonString)”返回前面提到的字符串数组,并且 SOAP 响应显示以下值: <a href="https://i.stack.imgur.com/ms2hp.png" rel="nofollow noreferrer">SOAP 响应结果</a></p><p>现在我想将返回的预算数组转换为 DataTable 以进一步用于我的项目,但我做不到。 实现这一目标的最佳方法是什么。 我尝试过的方法如下所述。</p><pre> string jsonString = CommonEnum.DataTableToJSON(Table); err.Message = "Json String is: " + jsonString; err.Insert(); string[] processString = budget.BudgetTagNet(jsonString); err.Message = "Budget service data is: " + processString[1]; err.Insert(); var XMLAsString = CommonEnum.SerializeXML(processString[1]); err.Message = "Converted XML To String data is: " + JsonConvert.SerializeObject(XMLAsString); err.Insert(); dt = (DataTable) JsonConvert.DeserializeObject(XMLAsString, (typeof(DataTable))); err.Message = "DataTable data: " + JsonConvert.SerializeObject(dt); err.Insert();</pre><p> 最后插入数据库中的数据,如上述方法是:<a href="https://i.stack.imgur.com/zSY2Q.png" rel="nofollow noreferrer">插入的数据库值</a></p></div>

[英]Convert XML <!CDATA to DataTable C#

I have Webservice SOAP method which takes Json as input argument.我有 Webservice SOAP 方法,它将 Json 作为输入参数。

//For sample
string jsonString = "[{"Year":"2020","UserId":"1","Comp":"20","DeptId":"32","CategoryId":"53","ItemId":"0"}]";

string[] processString = budget.BudgetTagNet(jsonString);

Now "budget.BudgetTagNet(jsonString)" returns Array of string as mentioned and the SOAP Response shows following value: SOAP RESPONSE RESULT现在“budget.BudgetTagNet(jsonString)”返回前面提到的字符串数组,并且 SOAP 响应显示以下值: SOAP 响应结果

Now I want to convert the returned budget array to DataTable for further utilization for my project but I am unable to do.现在我想将返回的预算数组转换为 DataTable 以进一步用于我的项目,但我做不到。 What could be the best way to achieve that.实现这一目标的最佳方法是什么。 What I have tried so is mentioned below.我尝试过的方法如下所述。

 string jsonString = CommonEnum.DataTableToJSON(Table);
 err.Message = "Json String is : " + jsonString;
 err.Insert();

 string[] processString = budget.BudgetTagNet(jsonString);
                    err.Message = "Budget service data is : " + processString[1];
                    err.Insert();

                    var XMLAsString = CommonEnum.SerializeXML(processString[1]);
                    err.Message = "Converted XML To String data is : " + 
   JsonConvert.SerializeObject(XMLAsString);
                    err.Insert();

                    dt = (DataTable) JsonConvert.DeserializeObject(XMLAsString, (typeof(DataTable)));
                    err.Message = "DataTable data : " + JsonConvert.SerializeObject(dt);
                    err.Insert();

And finally Data inserted in database as for the above method is: Database values inserted最后插入数据库中的数据,如上述方法是:插入的数据库值

You can use Regex to parse data:您可以使用正则表达式来解析数据:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication11
{
    class Program
    {
        static void Main(string[] args)
        {
            string input =  "{\"Budkey\":2,\"BudTitle\":\"Budget Heads\", \"Budget_Amount\":0.0,\"Engaged\":0.0,\"Balance\":0.0";
            string pattern = @"""(?'key'[^""]+)"":(?'value'\w+)";
            MatchCollection matches = Regex.Matches(input, pattern);

            foreach (Match match in matches.Cast<Match>().Select(x => x))
            {
                Console.WriteLine("Key = '{0}', Value = '{1}'", match.Groups["key"].Value, match.Groups["value"].Value);
            }
            Console.ReadLine();
 

        }
    }
 

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM