我知道这是一个模糊的开放式问题。我希望得到一些大致的方向。
我需要将 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 会对此有好处。我可以从默认的“模板”文档开始并在保存之前对其进行操作。
感谢您的任何指点...