2011-08-04 10 views
1

私は、次のコードスニペットを持っている:私は、次のような結果与えDataTable.WriteXMLと子ノード

 var dataSet = new DataSet("Data"); 
     var table = GetCustomerTable(); 
     var orgTable = GetOrganizationTable(); 
     dataSet.Tables.Add(table); 
     dataSet.Tables.Add(orgTable); 
     var relation = new DataRelation("CustomerMembership", dataSet.Tables["Customers"].Columns["CustomerId"], dataSet.Tables["Organizations"].Columns["CustomerId"]) 
         {Nested = true}; 
     dataSet.Relations.Add(relation); 
     dataSet.WriteXml(@"C:\MyFeed.xml"); 

:私が探している何

<Customers> 
    <CustomerId>272408857</CustomerId> 
    <snip> 
    <Organizations> 
     <OrganizationName>Org1</OrganizationName> 
    </Organizations> 
    <Organizations> 
     <OrganizationName>Org2</OrganizationName> 
    </Organizations> 
    </Customers> 

はこのようなものです:私はOrganizationNameを得ることができる方法についての

<Customers> 
    <CustomerId>272408857</CustomerId> 
    <snip> 
    <Organizations> 
     <OrganizationName>Org1</OrganizationName> 
     <OrganizationName>Org2</OrganizationName> 
    </Organizations> 
    </Customers> 

すべてのアイデアは、1の内部にネスト0ノード; 1つの値を持つノードが2つずつではなく、

あなたのコードにこれを追加する
+0

おそらく '' – Rahul

答えて

2
DataColumn dc = orgTable.Columns["OrganizationName"]; 
dc.ColumnMapping = MappingType.Attribute; 

出力は次のようになります。

<Customers> 
    <CustomerId>272408857</CustomerId> 
    <snip> 
    <Organizations OrganizationName = "Org1"/> 
    <Organizations OrganizationName = "Org2"/> 
</Customers> 

をそれはあなたが必要な正確に何ではないですが、私はあなたと、テーブルタグに参加の子ノードを収集することはできませんだと思います.netツール。あなたはおそらく自分でXMLを変換する必要があります。

また、Organization要素のリスト(ただし、まだOrganizations要素がありません)を持つように、DataTableの名前を "Organization"に変更することもできます。

あなたはどう思いますか?

+0

のような属性を使用できます。私はWriteXmlメソッドでこれを取得する方法を見つけることができませんでした。私は少しLinqを使ってXMLにしました。 –

関連する問題