我知道这是一个模糊的开放式问题。我希望得到一些大致的方向。
我需要将 cXML punchout 添加到 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 对此有好处。我可以从默认的"template"文档开始,并在保存之前对其进行操作。
谢谢指点...
最佳答案
如果您需要以精确的格式生成任意 XML,您应该使用 LINQ-to-XML 手动生成它。
关于c# - 在 C# 中读写 cXML 文档的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2884257/