C # XMLDocument для DataTable? - PullRequest
12 голосов
/ 08 мая 2009

Я предполагаю, что должен сделать это через DataSet, но мне не нравится мой синтаксис.

У меня есть XMLDocument под названием «XmlDocument xmlAPDP».

Я хочу это в DataTable под названием «DataTable dtAPDP».

У меня также есть DataSet под названием «DataSet dsAPDP».

-

если я делаю DataSet dsAPDP.ReadXML (xmlAPDP), это не нравится, потому что ReadXML хочет строку, я предполагаю имя файла?

Ответы [ 3 ]

32 голосов
/ 08 мая 2009

Нет необходимости взламывать:

xmlAPDP = new XmlDocument()
...
xmlReader = new XmlNodeReader(xmlAPDP)
dataSet = new DataSet()
...
dataSet.ReadXml(xmlReader)

XmlDocument является XmlNode, а XmlNodeReader является XmlReader, который принимает ReadXml.

2 голосов
/ 11 января 2010

Пример ASP.net:

private DataTable GetReportDataTable()
{
    //get mapped path to xml document
    string xmlDocString = Server.MapPath("CustomReports.xml");

    //read into dataset
    DataSet dataSet = new DataSet();
    dataSet.ReadXml(xmlDocString);

    //return single table inside of dataset
    return dataSet.Tables[0];
}
2 голосов
/ 08 мая 2009

Как насчет этого?

dsAPDP.ReadXml(new MemoryStream(ASCIIEncoding.ASCII.GetBytes(xmlAPDP.OuterXml)))
...