如何在ASP.NET C#中使用stringbuilder获取数据 [英] How to get data using stringbuilder in ASP.NET C#

查看:223
本文介绍了如何在ASP.NET C#中使用stringbuilder获取数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从下面的XML我想要这样的数据



Date = 9/1,2018,

Name = abc ,

IntegrationEarningsID10 = -5.96,

IntegrationEarningsID11 = 1.50,

IntegrationEarningsID11 = -49.99,

...像这样



XML: -

Hi, from the below XML i want the data like this

Date=9/1/2018,
Name=abc,
IntegrationEarningsID10=-5.96,
IntegrationEarningsID11=1.50,
IntegrationEarningsID11=-49.99,
....like this

XML:-

<?xml version="1.0" encoding="utf-8"?>
<Players>
  <Player>
    <Date>9/1/2018</Date>
    <Name>abc</Name>
    <IntegrationEarnings>
      <Integration id="11">-5.96</Integration>
      <Integration id="10">1.50</Integration>
      <Integration id="12">-49.99</Integration>
      <Integration id="10">54.00</Integration>
      <Integration id="12">-0.05</Integration>
      <Integration id="10">334.00</Integration>
      <Integration id="12">-0.14</Integration>
      <Integration id="12">101.22</Integration>
      <Integration id="11">-18.00</Integration>
      <Integration id="12">-0.75</Integration>
    </IntegrationEarnings>
  </Player>
</Players>





我尝试过:





What I have tried:

StringReader strReader = new StringReader("<?xml version=\"1.0\" encoding=\"utf-8\"?><Players><Player><Date>9/1/2018</Date><Name>abc</Name><IntegrationEarnings><Integration id =\"11\">-5.96</Integration><Integration id =\"10\">1.50</Integration><Integration id = \"12\" >-49.99 </Integration></IntegrationEarnings></Player></Players>");


              DataSet ds = new DataSet();

              DataTable filteredDt = new DataTable();


              ds.ReadXml(strReader);

推荐答案

DataTable dataTable = null;
using (StringReader strReader = new StringReader("<?xml version=\"1.0\" encoding=\"utf-8\"?><Players><Player><Date>9/1/2018</Date><Name>abc</Name><IntegrationEarnings><Integration id =\"11\">-5.96</Integration><Integration id =\"10\">1.50</Integration><Integration id = \"12\" >-49.99 </Integration></IntegrationEarnings></Player></Players>"))
{
    DataSet dataSet = new DataSet();
    dataSet.ReadXml(strReader);
    dataTable = dataSet.Tables[0];
}





FWIW,您可以通过简单的谷歌搜索轻松找到如何做到这一点。



FWIW, you could have easily found out how to do this with a simple google search.


检查:

Check this:
StringReader strReader = new StringReader("<?xml version=\"1.0\" encoding=\"utf-8\"?><Players><Player><Date>9/1/2018</Date><Name>abc</Name><IntegrationEarnings><Integration id =\"11\">-5.96</Integration><Integration id =\"10\">1.50</Integration><Integration id = \"12\" >-49.99 </Integration></IntegrationEarnings></Player></Players>");
XDocument xdoc = XDocument.Load(XmlReader.Create(strReader));

DataTable myData = new DataTable();
myData.Columns.Add(new DataColumn("Field", typeof(string)));
myData.Columns.Add(new DataColumn("Value", typeof(string)));
myData = xdoc.Descendants()
	.Where(x=>x.Name !="Player" && x.Name !="Players")
	.Select(x=> myData.LoadDataRow(new object[]
		{
			x.Name + (string)x.Attributes().FirstOrDefault(),
			x.Value
		}, false))
	.CopyToDataTable();


这篇关于如何在ASP.NET C#中使用stringbuilder获取数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆