使用StringBuilder与XmlDocument或创建XML文档相关的优点是什么?

时间:2010-04-22 14:01:17

标签: .net xml xmldocument stringbuilder

这可能有点像code smell,但我看到它是一些生产代码,即在创建XML文档时使用StringBuilder而不是XmlDocument。在某些情况下,这些是一次写入操作(例如,创建文档并将其保存到磁盘),而其他人正在将构建的字符串传递给XmlDocument,以便将XslTransform预先格式化为返回给客户端的文档。

如此明显的问题:以这种方式做事是否有价值,是否应该根据具体情况进行,或者这是错误的做事方式?

2 个答案:

答案 0 :(得分:6)

我建议使用XMLTextWriter来构建XML文档(引自MSDN):

  

表示一个提供快速,非缓存,仅向前方式的编写器   生成流或文件   包含符合的XML数据   W3C可扩展标记语言   (XML)1.0和XML中的命名空间   建议。

我已经多次使用它 - 比使用XMLDocument更高效,使用StringBuilder无法获得的XML安全性。

答案 1 :(得分:2)

XmlDocument很难用于创建XML,因此大多数人都不愿意使用它。 StringBuilder重量轻但不知道XML,因此根本不验证结构。您可以使用LINQ to XML获得两全其美。它允许您轻松地创建有效的XML,而不会产生太多的愚蠢开销。如果您不熟悉使用Linq to XML来创作XML,请查看此article