首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataTable.WriteXML和子节点

DataTable.WriteXML和子节点
EN

Stack Overflow用户
提问于 2011-08-05 01:50:52
回答 1查看 3.9K关注 0票数 1

我有以下代码片段:

代码语言:javascript
复制
        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");

这给出了以下结果:

代码语言:javascript
复制
<Customers>
    <CustomerId>272408857</CustomerId>
    <snip>
    <Organizations>
      <OrganizationName>Org1</OrganizationName>
    </Organizations>
    <Organizations>
      <OrganizationName>Org2</OrganizationName>
    </Organizations>
  </Customers>

我要找的东西是这样的:

代码语言:javascript
复制
<Customers>
    <CustomerId>272408857</CustomerId>
    <snip>
    <Organizations>
      <OrganizationName>Org1</OrganizationName>
      <OrganizationName>Org2</OrganizationName>
    </Organizations>
  </Customers>

关于如何将OrganizationName嵌套在一个Organization节点中,而不是让两个节点各有一个值,您有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-05 05:00:38

代码语言:javascript
复制
DataColumn dc = orgTable.Columns["OrganizationName"];
dc.ColumnMapping = MappingType.Attribute;

将此代码添加到您的代码将输出以下内容:

代码语言:javascript
复制
<Customers>
    <CustomerId>272408857</CustomerId>
    <snip>
    <Organizations OrganizationName = "Org1"/>
    <Organizations OrganizationName = "Org2"/>
</Customers>

这并不完全是您所需要的,但是我认为您不能使用.net工具在表标记中收集连接的子节点。您可能必须自己转换xml。

您还可以将您的组织重命名为“DataTable”,这样您将拥有一个Organization元素列表(尽管仍然缺少父Organizations元素)。

你认为如何?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6946178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档