Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用C#读写cXML文档的最佳方式是什么?_C#_Xml_Cxml - Fatal编程技术网

用C#读写cXML文档的最佳方式是什么?

用C#读写cXML文档的最佳方式是什么?,c#,xml,cxml,C#,Xml,Cxml,我知道这是一个模糊的开放式问题。我希望得到一些大致的指导 我需要将cXML punchout添加到ASP.NET C#站点/应用程序中。这取代了我几年前在ColdFusion中写的东西 我是一名经验丰富的C#开发人员,但我对XML做得不多。在.NET中处理XML似乎有很多不同的选项 这里有一个开放式问题:假设我有某种形式的XML文档,例如文件或字符串,那么将其读入代码的最佳方式是什么?我想获取数据,然后查询数据库等。cXML文档大小和我们的通信量都很小,因此将cXML文档加载到内存中不是问题 我

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

我需要将cXML punchout添加到ASP.NET C#站点/应用程序中。这取代了我几年前在ColdFusion中写的东西

我是一名经验丰富的C#开发人员,但我对XML做得不多。在.NET中处理XML似乎有很多不同的选项

这里有一个开放式问题:假设我有某种形式的XML文档,例如文件或字符串,那么将其读入代码的最佳方式是什么?我想获取数据,然后查询数据库等。cXML文档大小和我们的通信量都很小,因此将cXML文档加载到内存中不是问题

我应该:

1) 基于dtd手动构建类并使用XML序列化程序

2) 使用工具生成类。有一些示例cXML文件可从Ariba.com下载。 我试着用xsd.exe生成一个xsd,然后用xsd.exe/c生成类。当我尝试反序列化时,会出现错误,因为对于某些元素应该是单值还是数组,似乎存在“混淆”

我尝试了CodeXS在线工具,但它在日志中会出现错误,如果我尝试反序列化示例文档,则会出现错误

2) 创建数据集并读取XML()

3) 创建类型化数据集并读取XML()

4) 使用Linq转换XML。我经常使用Linq来创建对象,所以我对Linq基本上很熟悉,但我很难看到它在这种情况下给了我什么

5) 其他一些方法

我想我需要提高我对XML的总体理解,但即使如此。。。我是否错过了一些显而易见的方法?在旧的ColdFusion站点中,我发现了一个免费组件(“标记”),它基本上忽略了任何模式,并将XML读入一个“结构”,该结构本质上是一系列嵌套的哈希表,很容易在代码中读取。这可能是相当草率的,但它奏效了

我还需要从我的C#对象生成XML文件。也许linqtoxml将有助于实现这一点。我可以从一个默认的“模板”文档开始,并在保存之前对其进行操作


感谢您提供的所有指针…

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

不是重复的人,但请看这里:谢谢。Linq到XML绝对是最简单的方法。