Мне интересно, возможно ли иметь общий класс, который извлекает данные таблицы из XML-файла? Как цикл или что-то через С#?
Вот пример XML:
<Report>
<Template>
<Stylesheet>
<Table>
<tbody>
<tr>
<td>
<p align = "left">Test A</p>
</td>
<td>
<p align = "center">Test B</p>
</td>
</tr>
<tr>
<td>
<p align = "left">Test C</p>
</td>
<td>
<p align = "center">Test D</p>
</td>
</tr>
</tbody>
</Table>
</Stylesheet>
</Template>
</Report>
Мне нужно получить эти данные, тест A, тест B, тест C и тест D.
Любая помощь? Спасибо.





Если вам нужен весь контент дочерних узлов td, попробуйте:
XDocument xml = XDocument.Load(xmlPath);
var list = from e in xml.Descendants("td").Elements() select e.Value;
нужно только п:
XDocument xml = XDocument.Load(xmlPath);
var list = from e in xml.Descendants("td").Elements("p") select e.Value;
Вот полное решение
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Xml;
using System.Xml.Linq;
namespace ConsoleApplication120
{
class Program
{
const string FILENAME = @"c:\temp\test.xml";
static void Main(string[] args)
{
DataTable dt = new DataTable();
dt.Columns.Add("align", typeof(string));
dt.Columns.Add("value", typeof(string));
XDocument doc = XDocument.Load(FILENAME);
foreach (XElement p in doc.Descendants("p"))
{
dt.Rows.Add(new object[] {
(string)p.Attribute("align"),
(string)p
});
}
}
}
}