5

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

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

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

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

我是不是该:

1) 基于 dtd 手动构建类并使用 XML 序列化器?

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

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

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

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

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

5) 其他一些方法。

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

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

感谢您的任何指点...

4

1 回答 1

1

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

于 2010-05-21T18:12:59.820 回答