我想我必须通过 DataSet 来实现这个,但是它不喜欢我的语法。
我有一个名为 "XmlDocument xmlAPDP" 的 XMLDocument。
我希望它在一个名为 "DataTable dtAPDP" 的 DataTable 中。
我还有一个名为 "DataSet dsAPDP" 的 DataSet。
-
如果我执行 DataSet dsAPDP.ReadXML(xmlAPDP),它不喜欢它,因为 ReadXML 需要一个字符串,我认为是一个文件名?
我想我必须通过 DataSet 来实现这个,但是它不喜欢我的语法。
我有一个名为 "XmlDocument xmlAPDP" 的 XMLDocument。
我希望它在一个名为 "DataTable dtAPDP" 的 DataTable 中。
我还有一个名为 "DataSet dsAPDP" 的 DataSet。
-
如果我执行 DataSet dsAPDP.ReadXML(xmlAPDP),它不喜欢它,因为 ReadXML 需要一个字符串,我认为是一个文件名?
无需任何技巧:
xmlAPDP = new XmlDocument()
...
xmlReader = new XmlNodeReader(xmlAPDP)
dataSet = new DataSet()
...
dataSet.ReadXml(xmlReader)
XmlDocument是XmlNode,而XmlNodeReader是XmlReader,ReadXml方法可以接受它。
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)))
using (XmlReader reader = new XmlNodeReader(xmlAPDP.documentElement)) { dsAPDP.ReadXml(reader); reader.Close(); } dtAPDP = dsAPDP.Tables[0];
- omadawn