В моем текущем проекте я читаю xml-файл в DataSet, используя System.IO.Stream.Как читать дочерний узел XML-файла?
Существует сто над записями дочерних узлов внутри родительского узла, NewDataSet
. Я приложил XML-схема ниже:
Однако, когда я подсчетом DataSet таблицы, он возвращает только 1 таблицу.
FileStream fileStream = new FileStream(sourceFilePath, FileMode.Open);
try
{
dataSet.ReadXml(fileStream);
if (dataSet.Tables.Count> 0)
{
//dt = dataSet.Tables[0];
for (int i = 0; i < dataSet.Tables.Count; i++)
{
dataTable = dataSet.Tables[i];
if (dataTable != null)
{
SalesHeader salesHeader = new SalesHeader();
salesHeader.OutletCode = dataTable.Rows[i]["OutletCode"].ToString();
salesHeader.TransactionNo = dataTable.Rows[i]["TransactionNo"].ToString();
salesHeader.TransactionDate = Convert.ToDateTime(dataTable.Rows[i]["TransactionDate"]);
salesHeader.ShiftNo = Convert.ToInt16(dataTable.Rows[i]["ShiftNo"]);
salesHeader.TotalAmount = Convert.ToDecimal(dataTable.Rows[i]["TotalAmount"]);
salesHeader.TenderAmount = Convert.ToDecimal(dataTable.Rows[i]["TenderAmount"]);
salesHeader.ChangeAmount = Convert.ToDecimal(dataTable.Rows[i]["ChangeAmount"]);
salesHeader.TransactionStatus = Convert.ToInt16(dataTable.Rows[i]["TransactionStatus"]);
salesHeader.BusinessDate = Convert.ToDateTime(dataTable.Rows[i]["BusinessDate"]);
}
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
fileStream.Close();
}
Я думаю, что он только читает родительский узел и не может достичь дочерних узлов. Может ли кто-нибудь рассказать мне, как решить эту проблему? Любая помощь будет очень оценена!
Самое похоже, что в вашем XML содержатся строки таблицы, а не многие таблицы. –
@HamletHakobyan Вы правы. Спасибо, что указал на мою проблему. –