2010-05-21 83 views
5

我知道这是一个模糊的开放式问题。我希望得到一些大方向。在C#中读写cXML文档的最佳方式是什么?

我需要将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站点中,我找到了一个基本上忽略了任何模式的免费组件(“标签”),并将XML读取到一个“结构”中,该结构基本上是一系列嵌套的散列表,然后便于代码读取。这可能很sl but,但它工作。

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

感谢任何指针...

+0

不是一个骗子persay,但看看这里:http://stackoverflow.com/questions/444116/what-are-the-best-functions-practices-and-or-techniques-to-read-write- xml-with – 2010-05-21 17:55:59

回答

1

如果你需要生成一个精确的任意格式的XML,你应该使用LINQ到XML手动生成。

+0

谢谢。 Linq to XML绝对是最简单的方法。 – tetranz 2010-06-01 15:07:20

+0

是的;它通常是。 :) – SLaks 2010-06-01 15:21:49

相关问题