使用字符串拼接构建XML的程序员。
我的问题是,为什么通过字符串拼接(例如在C#中使用StringBuilder
)构建XML是不好的?我以前做过几次这样的事情,因为对于我正在处理的数据结构/对象来说,这有时是最快的方法。到目前为止,我想出了一些原因,说明这不是最佳方法,但我是否忽略了什么?为什么应该避免这种方法?
- 我能想到的最大原因可能是你需要手动转义字符串,而大多数新程序员(甚至一些经验丰富的程序员)会忘记这一点。当他们测试时,它将非常好用,但是当有人在他们的输入中抛出 & 符号时,他们的应用程序将"随机"失败。好吧,我同意这个观点,但很容易避免这个问题(其中一个方法是SecurityElement.Escape)。
- 当我这样做时,我通常会省略XML声明(即
<?xml version="1.0"?>
)。这有害吗? - 性能损失?如果您坚持使用正确的字符串连接方法(即
StringBuilder
),是否有什么需要担心的?可以想象,像XmlWriter
这样的类也需要进行一些字符串操作... - 有更优雅的生成XML的方式,例如使用
XmlSerializer
自动序列化/反序列化您的类。好的,我同意。C#有许多有用的类可以做到这一点,但有时我不想为写日志文件之类的东西创建一个类。这只是我懒惰吗?如果我做一些"真正的"事情,这是我处理XML的首选方法。