web-dev-qa-db-ja.com

C#XMLDocumentからDataTable?

DataSetを介してこれを行う必要があると思いますが、構文が気に入らないのです。

「XmlDocumentxmlAPDP」というXMLDocumentがあります。

「DataTabledtAPDP」というDataTableに入れたいです。

「DataSetdsAPDP」というDataSetもあります。

-

dataSet dsAPDP.ReadXML(xmlAPDP)を実行すると、ReadXMLが文字列を必要とするため、ファイル名を想定しますか?

12
Matt Dell

ハックは必要ありません:

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

XmlDocumentはXmlNodeであり、XmlNodeReaderはReadXmlが受け入れるXmlReaderです。

32

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
Bob Yenser

このようなものはどうですか?

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