【问题标题】:What is the best way to read and write cXML documents in C#?在 C# 中读写 XML 文档的最佳方法是什么?
【发布时间】:2010-05-21 17:40:46
【问题描述】:

我知道这是一个模糊的开放式问题。我希望得到一些大致的方向。

我需要将 cXML 打孔添加到 ASP.NET C# 站点/应用程序。这取代了我多年前在 ColdFusion 中写的内容。

我是一名相当有经验的 C# 开发人员,但我对 XML 的工作并不多。在 .NET 中处理 XML 似乎有很多不同的选项。

这是一个开放式问题:假设我有一个某种形式的 XML 文档,例如文件或字符串,将它读入我的代码的最佳方法是什么?我想获取数据,然后查询数据库等。cXML 文档大小和我们的流量很容易足够小,因此将 cXML 文档加载到内存中不是问题。

我应该:

1) 基于 dtd 手动构建类并使用 XML Serializer?

2) 使用工具生成类。可以从 Ariba.com 下载示例 cXML 文件。 我尝试 xsd.exe 生成 xsd,然后 xsd.exe /c 生成类。当我尝试反序列化时出现错误,因为似乎有些元素应该是单个值还是数组存在“混淆”。

我尝试了 CodeXS 在线工具,但如果我尝试反序列化示例文档,则会在其日志中显示错误。

2) 创建数据集和 ReadXml()?

3) 创建类型化数据集和 ReadXml()?

4) 使用 Linq to XML。我经常使用 Linq to Objects,所以我对 Linq 很熟悉,但我很难了解它在这种情况下能给我带来什么。

5) 其他方式。

我想我需要提高对 XML 的总体理解,但即便如此……我是否遗漏了一些明显的方法?在旧的 ColdFusion 站点中,我发现了一个免费组件(“标签”),它基本上忽略了任何模式并将 XML 读入一个“结构”,该结构本质上是一系列嵌套的哈希表,然后在代码中很容易阅读。这可能很草率,但确实有效。

我还需要从我的 C# 对象生成 XML 文件。也许 Linq to XML 会对此有好处。我可以从一个默认的“模板”文档开始,然后在保存之前对其进行操作。

感谢任何指点...

【问题讨论】:

标签: c# xml cxml


【解决方案1】:

如果您需要生成精确格式的任意 XML,您应该使用 LINQ-to-XML 手动生成它。

【讨论】:

  • 谢谢。 Linq to XML 绝对是最简单的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多