简体   繁体   English

如何在C#中将xml转换为DataTable

[英]how to convert xml to DataTable in C#

My customer gave me a webservice which was written in ColdFusion and I have been trying to consume it with C#. 我的客户给了我一个用ColdFusion编写的webservice ,我一直在尝试使用C#来使用它。 I have been trying to convert XML to DataTabl e but I am getting a DataTable with no rows. 我一直在尝试将XML转换为DataTabl e,但是我得到的DataTable没有行。

Here is my XML: 这是我的XML:

<?xml version='1.0' standalone='yes'?>
<dtFirms>
  <NR>2</NR>
  <NAME>CS Net - 2014</NAME>
  <NRTIT>2 - 2014 - CS Net - 2014</NRTIT>
  <PERIOD>7</PERIOD>
</dtFirms>

and this is my C# code. 这是我的C#代码。 It always return empty DataTable. 它总是返回空的DataTable。 What am I doing wrong? 我究竟做错了什么?

    public DataTable ReadXmlIntoDataTable(string s) {

    //create the DataTable that will hold the data
    DataTable table = new DataTable("dtFirms");
    try
    {
        //open the file using a Stream
        using (Stream stream = GenerateStreamFromString(s))
        {
            //create the table with the appropriate column names
            table.Columns.Add("NR", typeof(string));
            table.Columns.Add("NAME", typeof(string));
            table.Columns.Add("NRTIT", typeof(string));
            table.Columns.Add("PERIOD", typeof(int));

            //use ReadXml to read the XML stream
            table.ReadXml(stream);

            //return the results
            return table;
        }
    }
    catch (Exception ex)
    {
        return table;
    }
}


public Stream GenerateStreamFromString(string s)
{
    MemoryStream stream = new MemoryStream();
    StreamWriter writer = new StreamWriter(stream);
    writer.Write(s);
    writer.Flush();
    stream.Position = 0;
    return stream;
}

It always return empty DataTable. 它总是返回空的DataTable。 What am I doing wrong? 我究竟做错了什么? Please help me. 请帮我。

  1. You can create schema for your xml file. 您可以为xml文件创建架构。

  2. By using XSD.exe you can generate class structure for schema. 通过使用XSD.exe,可以生成架构的类结构。 Use these xml schema classes for iterating through the xml file. 使用这些xml模式类来遍历xml文件。

  3. Use table.Rows.Add() function to add entries in data table. 使用table.Rows.Add()函数在数据表中添加条目。

转换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#

暂无
暂无

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

相关问题 如何在C#中将DataTable转换为XML文件? - How can I convert a DataTable to an XML file in C#? 将XML文件转换为数据表C# - Convert XML file to datatable C# 在C#中将DataTable转换为XML层次结构 - Convert DataTable into XML hierarchy in C# 转换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# 如何在C#中从数据表生成XML - How to generate XML from datatable in c# 如何将数据表转换为列表 <String> 在C#中 - how convert DataTable to List<String> in C# 如何将数据表转换为 C# 中的 webelement 列表 - How to convert the datatable into list of webelement in C# 如何在c#中将DataTable转换为Array? - How to convert DataTable to Array in c#? 如何在 C# 中将 DataTable 转换为字符串? - How to convert a DataTable to a string in C#? 如何在C#,MVC中将CSV转换为数据表 - How to convert csv to datatable in c#, mvc
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM