2

asp.net データテーブルを XML ドキュメントに変換するメソッドを書きたいと思います。それを達成するための最良の方法は何ですか?非常に初歩的な質問で申し訳ありません。

前もって感謝します。

4

2 に答える 2

1

DataTable.WriteXml メソッドの使用をご覧ください

DataTable の現在の内容を XML として書き込みます。

より具体的には、XmlWriteMode Enumerationを使用したオーバーロード

オプションの使用WriteSchema

DataSet の現在の内容を XML データとして書き込み、リレーショナル構造をインライン XSD スキーマとして書き込みます。DataSet にデータのないスキーマのみがある場合、インライン スキーマのみが書き込まれます。DataSet に現在のスキーマがない場合、何も書き込まれません。

于 2013-06-15T07:58:53.187 に答える
1

"WriteXml"メソッドを使用して、データテーブルを XML ドキュメントに変換できます。

例:

DataTable dt = new DataTable("Product");
 DataColumn dc = new DataColumn();
 dc.ColumnName = "ProductID";
 dc.DataType = typeof(int);
 dt.Columns.Add(dc);

 DataColumn dc2 = new DataColumn();
 dc2.ColumnName = "ProductName";
 dc2.DataType = typeof(string);
 dt.Columns.Add(dc2);
 dt.Rows.Add(new object[] { "1", "CShap In Depth By Jon Skeet" })
 dt.WriteXml("{path to save your xml file}\\documentname.xml");

それでも、次のサンプルコードを使用できる拡張メソッドが必要です(テストされていません)

( http://www.extensionmethod.net/csharp/datatable/toxmlから取得)

public static XDocument ToXmlDocument(this DataTable dataTable, string rootName)
        {
            var XmlDocument = new XDocument
            {
                Declaration = new XDeclaration("1.0", "utf-8", "")
            };
            XmlDocument.Add(new XElement(rootName));
            foreach (DataRow row in dataTable.Rows)
            {
                XElement element = null;
                if (dataTable.TableName != null)
                {
                   element = new XElement(dataTable.TableName);
                }
                foreach (DataColumn column in dataTable.Columns)
                {
                    element.Add(new
                XElement(column.ColumnName, row[column].ToString().Trim(' ')));
                }
                if (XmlDocument.Root != null) XmlDocument.Root.Add(element);
            }

            return XmlDocument;
        }
    }
于 2013-06-15T08:05:52.057 に答える