【问题标题】:How to specify format of XML output when writing from a DataTable?从 DataTable 写入时如何指定 XML 输出的格式?
【发布时间】:2009-09-22 16:59:25
【问题描述】:

在 C# 中,我使用 dataTable.WriteXml(filePath) 从 DataTable 创建 XML 文件,并获得以下信息:

<?xml version="1.0" encoding="utf-8" ?>
<ExperienceProfiles>
  <ExperienceProfile>
    <Col1>blah</Col1>
    <Col2>4ed397bf-a4d5-4ace-9d44-8c1a5cdb0f34</Col2>
  </ExperienceProfile>
</ExperienceProfiles>

我怎样才能让它以以下格式编写 XML?:

<?xml version="1.0" encoding="utf-8" ?>
<ExperienceProfiles>
  <ExperienceProfile Col1="blah"
    Col2="blah" ></ExperienceProfile>
</ExperienceProfiles>

【问题讨论】:

    标签: c# ado.net xsd


    【解决方案1】:

    您想要的是某种方式告诉 DataSet 您的数据的预期格式。您很幸运,DataSet 仅支持此功能。

    在写出 XML 之前,您需要为您的数据创建一个 XML 模式并将其加载到 DataSet 中。在架构中将 Col1 和 Col2 定义为 ExperienceProfile 元素的属性,DataSet 将知道格式化输出文档以满足架构中指定的要求。

    如果您对创建架构不满意,您可以按照您希望格式化的方式创建 XML 文件的示例,然后查看框架中的 XmlSchemaInference 类。此类可用于自动生成架构,您可能需要稍微调整输出,但如果您不熟悉 XSD,它会有所帮助。

    【讨论】:

    • 为了更好,请在 VIsual Studio 中打开示例 XML 文档,然后从 XML 菜单中选择“生成架构”!
    • 谢谢。我对架构非常熟悉——我希望在 WriteXml 上有一个我忽略的参数可以让它变得更简单。
    【解决方案2】:

    您可以使用数据表列的 ColumnMapping 功能。 .

    column.ColumnMapping = MappingType.Attribute
    

    【讨论】:

      【解决方案3】:

      简短回答:你不能,使用 DataTable 的 WriteXml 方法。

      长答案(不是很长): 自己动手吧。

      撤回我的答案,如上所述 :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-10
        • 2011-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-06
        • 1970-01-01
        相关资源
        最近更新 更多