Mukund M Ответов: 2

Как получить данные с помощью stringbuilder в ASP.NET с#


Привет, из приведенного ниже XML мне нужны такие данные

Дата=9/1/2018,
Название=АВС,
IntegrationEarningsID10=-5.96,
IntegrationEarningsID11=1.50,
IntegrationEarningsID11=-49.99,
....подобный этому

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>


Что я уже пробовал:

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

2 Ответов

Рейтинг:
11

Maciej Los

Проверить это:

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


Maciej Los

И...

Рейтинг:
1

#realJSOP

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, вы могли бы легко узнать, как это сделать с помощью простого поиска google.


Maciej Los

Вот это да!