从DataTable写入时如何指定XML输出的格式?

时间:2008-12-09 23:03:20

标签: c# ado.net xsd

在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>

3 个答案:

答案 0 :(得分:5)

您想要的是告诉DataSet预期数据格式的一些方法。你很幸运,DataSet只支持这个功能。

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

如果您不熟悉创建模式,可以按照希望格式化的方式创建XML文件的样本,然后查看框架中的XmlSchemaInference类。此类可用于自动生成模式,您可能需要稍微调整输出,但如果您不熟悉XSD,则可以提供帮助。

答案 1 :(得分:4)

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

column.ColumnMapping = MappingType.Attribute

答案 2 :(得分:0)

  

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

     

答案很长(不是很长):   滚动你自己。

根据上述内容撤回我的答案:)

豫ICP备18024241号-1