这可能有点像code smell,但我看到它是一些生产代码,即在创建XML文档时使用StringBuilder而不是XmlDocument。在某些情况下,这些是一次写入操作(例如,创建文档并将其保存到磁盘),而其他人正在将构建的字符串传递给XmlDocument,以便将XslTransform预先格式化为返回给客户端的文档。
如此明显的问题:以这种方式做事是否有价值,是否应该根据具体情况进行,或者这是错误的做事方式?
答案 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。