简体   繁体   English

C#XMLDocument到DataTable?

[英]C# XMLDocument to DataTable?

I assume I have to do this via a DataSet, but it doesn't like my syntax. 我假设我必须通过DataSet执行此操作,但它不喜欢我的语法。

I have an XMLDocument called "XmlDocument xmlAPDP". 我有一个名为“XmlDocument xmlAPDP”的XMLDocument。

I want it in a DataTable called "DataTable dtAPDP". 我希望它在名为“DataTable dtAPDP”的DataTable中。

I also have a DataSet called "DataSet dsAPDP". 我还有一个名为“DataSet dsAPDP”的DataSet。

- -

if I do DataSet dsAPDP.ReadXML(xmlAPDP) it doesn't like that because ReadXML wants a string, I assume a filename? 如果我做DataSet dsAPDP.ReadXML(xmlAPDP)它不喜欢它,因为ReadXML想要一个字符串,我假设一个文件名?

No hacks required: 不需要黑客攻击:

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

XmlDocument is an XmlNode, and XmlNodeReader is a XmlReader, which ReadXml accepts. XmlDocument是一个XmlNode,XmlNodeReader是一个XmlReader,ReadXml接受它。

ASP.net example: 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];
}

这样的事怎么样?

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM