在线程中What’s your favorite “programmer ignorance” pet peeve? ,出现以下答案,获得大量点赞:
Programmers who build XML using string concatenation.
我的问题是,为什么通过字符串连接(例如 C# 中的 StringBuilder
)构建 XML 不好?
我过去曾多次这样做过,因为有时这是我在处理我正在使用的数据结构/对象时从 A 点到达 B 点的最快方法。到目前为止,我已经提出了一些为什么这不是最好的方法的原因,但是有什么我忽略的吗?为什么要避免这种情况?
- 我能想到的最大原因可能是您需要手动转义字符串,而大多数新程序员(甚至一些经验丰富的程序员)都会忘记这一点。当他们测试它时,它会非常适合他们,但是当有人在他们的输入中的某个地方抛出 & 符号时,他们的应用程序会“随机”失败。好的,我会买这个,但是预防这个问题真的很容易(SecurityElement.Escape 就是其中之一)。
- 当我这样做时,我通常会省略 XML 声明(即
<?xml version="1.0"?>
)。这有害吗? - 绩效处罚?如果您坚持使用正确的字符串连接(即
StringBuilder
),这有什么需要担心的吗?据推测,类似XmlWriter
的类还需要进行一些字符串操作... - 还有更优雅的方式生成 XML,例如使用
XmlSerializer
自动序列化/反序列化您的类。好吧,我同意。 C# 为此提供了大量有用的类,但有时我不想为某些非常快速的事情创建一个类,例如写出日志文件或其他东西。难道这只是我的懒惰吗?如果我正在做一些“真实的”事情,这是我处理 XML 的首选方法。
最佳答案
您可能会得到无效的 XML,但直到再次解析它时您才会发现 - 然后就为时已晚了。我经历了惨痛的教训才明白这一点。
关于c# - 使用字符串连接构建 XML 有什么不好的地方?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18671965/