掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
XMLデータをDataTableに格納し取得するには (ID:120158)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ASP.NET(VB.NET)でXMLのデータを読み込みDataTableに格納し、 エクセルに吐き出しています。 そこで質問です。(XMLは初心者です) XMLの階層が深いとうまくDataTableのDataRowが取得できないのですが その原因や取得する方法がわかりません。 以下サンプルです。 【NG】 <?xml version="1.0" encoding="shift_jis" standalone="yes"?> <NewDataSet> <DetailDataSet> <Data> <AAA>あああ</AAA> <BBB>いいい</BBB> <CCC>ううう</CCC> </Data> </DetailDataSet> <DetailDataSet> <Data> <AAA>えええ</AAA> <BBB>おおお</BBB> <CCC>かかか</CCC> </Data> </DetailDataSet> </NewDataSet> 【OK】 <?xml version="1.0" encoding="shift_jis" standalone="yes"?> <NewDataSet> <DetailDataSet> <AAA>あああ</AAA> <BBB>いいい</BBB> <CCC>ううう</CCC> </DetailDataSet> <DetailDataSet> <AAA>えええ</AAA> <BBB>おおお</BBB> <CCC>かかか</CCC> </DetailDataSet> </NewDataSet> 【OK】は<Data></Data>タグを減らしました。 XMLファイルはGlobal.asaxのApplication_Startで DataSetに格納し"MyDataTable"という名でApplicationに追加しています。 以下コードです(他のExcelオブジェクトなどは省略): Dim oRange As Excel.Range Dim dt As DataTable = CType(Application.Item("MyDataTable"), DataTable) 〜省略〜 DumpData(dt, oRange) Private Function DumpData(ByVal dt As DataTable, ByVal oCells As Excel.Range) As String Dim dr As DataRow, ary() As Object Dim iRow As Integer, iCol As Integer For iRow = 0 To dt.Rows.Count - 1 dr = dt.Rows.Item(iRow) ary = dr.ItemArray For iCol = 0 To UBound(ary) oCells(iRow + 5, iCol + 1) = ary(iCol).ToString Response.Write(ary(iCol).ToString & vbTab) Next Next End Function 【OK】のXMLファイルは問題なくエクセルに出力されるのですが 【NG】はary = dr.ItemArrayでaryに値が入っていません。 なんでも良いのでアドバイス願います。 よろしくお願いいたします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.