我有以下代码片段:
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>我要找的东西是这样的:
<Customers>
<CustomerId>272408857</CustomerId>
<snip>
<Organizations>
<OrganizationName>Org1</OrganizationName>
<OrganizationName>Org2</OrganizationName>
</Organizations>
</Customers>关于如何将OrganizationName嵌套在一个Organization节点中,而不是让两个节点各有一个值,您有什么想法吗?
发布于 2011-08-05 05:00:38
DataColumn dc = orgTable.Columns["OrganizationName"];
dc.ColumnMapping = MappingType.Attribute;将此代码添加到您的代码将输出以下内容:
<Customers>
<CustomerId>272408857</CustomerId>
<snip>
<Organizations OrganizationName = "Org1"/>
<Organizations OrganizationName = "Org2"/>
</Customers>这并不完全是您所需要的,但是我认为您不能使用.net工具在表标记中收集连接的子节点。您可能必须自己转换xml。
您还可以将您的组织重命名为“DataTable”,这样您将拥有一个Organization元素列表(尽管仍然缺少父Organizations元素)。
你认为如何?
https://stackoverflow.com/questions/6946178
复制相似问题