c# - 在 C# 中读写 cXML 文档的最佳方式是什么?

标签 c# xml cxml

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

我需要将 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/

相关文章:

xml - 如何组织一个大的karaf blueprint.xml?

python - 如何在lxml中编写xml文档的开头?

c# - Unity (5.5) 插件在导出 Windows 应用程序文件 (EXE) 时使用 SQLite 数据库错误

android - Gradle同步失败,并出现错误:无法解析XML

c# - HTTPModule 处理页面内容

xml - wso2 esb丰富xml中的文本

java - 在 cXML 中返回不同的状态代码我还必须发回 HTTP 状态代码吗?

c# - 需要帮助在没有 WebBrowser 的情况下从 HTML 评估 Javascript

C# - 使用子类实现接口(interface)