14 Stimmen

C# XMLDocument zu DataTable?

Ich nehme an, ich muss dies über ein DataSet tun, aber meine Syntax gefällt mir nicht.

Ich habe ein XMLDocument mit dem Namen "XmlDocument xmlAPDP".

Ich möchte sie in einer DataTable mit dem Namen "DataTable dtAPDP".

Ich habe auch ein DataSet namens "DataSet dsAPDP".

-

Wenn ich DataSet dsAPDP.ReadXML(xmlAPDP) ausführe, wird das nicht akzeptiert, weil ReadXML eine Zeichenkette verlangt, ich nehme an, einen Dateinamen?

35voto

Matthew Flaschen Punkte 266507

Keine Hacks erforderlich:

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

XmlDocument ist ein XmlNode, und XmlNodeReader ist ein XmlReader, der von ReadXml akzeptiert wird.

3voto

Bob Yenser Punkte 31

ASP.net Beispiel:

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];
}

2voto

Kon Punkte 26399

Wie wäre es mit etwas wie diesem?

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X