在C#中读写XML

时间:2010-09-30 11:49:50

标签: c# xml

我正在使用.NET 4.0 Framework。我需要编写一些XML来与Web服务进行交互。传递给Web服务的参数将由最终用户输入。

我的问题是,这些天与XML交互的推荐方法是什么?似乎每个版本的.NET Framework都有一种新方法可以做同样的事情。但这并不一定意味着它是最好的。在这种情况下社区推荐什么?

3 个答案:

答案 0 :(得分:9)

每个版本都没有新版本。只有两个。不幸的是应该有两个,但肯定不会超过两个。

我推荐的是System.Xml.Linq.XDocument及其相关类。它们提供了一个干净,有用的API,允许您使用LINQ和Enumerable扩展方法。在此API中生成XML树很容易,因为您可以嵌套构造函数调用,最终得到的代码看起来非常像XML本身。

我不推荐的是System.Xml.XmlDocument。它已经过时了,它的设计遵循W3C对XML API的建议。因此,它不支持任何现代或C#特定的想法,包括enumerables和LINQ。在此API中生成XML树是曲折的:您必须单独创建每个元素并调用AppendChild之类的方法将它们转换为树。

答案 1 :(得分:2)

如果服务是WCF或实现WS- *标准,您应该能够从项目中添加服务引用,并通过实体与其进行交互,而不是进行所有网络调用和处理消息手动

答案 2 :(得分:0)

每当我需要使用XML时,我都会考虑进行序列化。只需使用[Serializible]标记类,使用System.Xml.Serialization中的相应属性标记属性,然后序列化对象。仅当XML的格式是确定的时,这才有效。您可以使用类描述XML。如果你不喜欢@Timwi说System.Xml.Linq.XDocument是最好的选择。