c# - 从 DataTable 写入时如何指定 XML 输出格式?

标签 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>

最佳答案

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

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

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

关于c# - 从 DataTable 写入时如何指定 XML 输出格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/354568/

相关文章:

c# - 从 C# 中的 DataSet 中提取存储过程 COUNT 结果

java - 为什么我的 JAXB Unmarshaller 找不到在导入模式中声明的元素?

c# - 在高容量 IIS 网站上运行时 Entity Framework 会失败吗

c# - 应用程序不加载azure应用程序配置功能标志值,但加载配置值

c# - 是否可以通过编程方式检查 Dynamics CRM 中是否启用了实体 "Activity"?

c# - 在 .net 中存储 SQL 命令

c# - 为什么代码在查询数据库时会耗尽 CPU?

当节点有多个子节点时,针对 XSD 的 XML 验证失败

java - 无法读取架构文档 'http://www.springframework.org/schema/security/spring-security-4.0.xsd'

C# 设计问题 : two immutable objects with references to each other