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

我需要将CXML Punchout添加到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到对象上,所以我一般都熟悉Linq,但是我正在努力地看到它在这种情况下给我带来了什么。

5)其他手段。

我想我需要提高对XML的理解,但即使如此……我是否会错过一些明显的方法?在旧的ColdFusion网站中,我找到了一个自由组件(“ TAG”),该组件基本上忽略了任何模式,并将XML读为“结构”,该XML本质上是一系列嵌套的哈希表,然后在代码中易于阅读。那可能很草率,但奏效了。

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

感谢您的任何指示...

有帮助吗?

解决方案

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top