gpt4 book ai didi

c# - 使用字符串连接构建 XML 有什么不好?

转载 作者:IT王子 更新时间:2023-10-29 04:28:33 25 4
gpt4 key购买 nike

在线程中What’s your favorite “programmer ignorance” pet peeve? ,出现以下答案,并获得大量赞成票:

Programmers who build XML using string concatenation.

我的问题是,为什么通过字符串连接(例如 C# 中的 StringBuilder)构建 XML 不好?

我过去曾多次这样做,因为在处理我正在处理的数据结构/对象时,这有时是我从 A 点到达 B 点的最快方式。到目前为止,我已经提出了一些为什么这不是最好的方法的原因,但是我忽略了什么吗?为什么要避免这种情况?

  1. 我能想到的最大原因可能是您需要手动对字符串进行转义,而大多数新程序员(甚至一些有经验的程序员)都会忘记这一点。当他们测试它时,它对他们来说非常有用,但是当有人在他们的输入中的某个地方抛出一个 & 符号时,他们的应用程序会“随机地”失败。好的,我会买这个,但它真的很容易防止这个问题(SecurityElement.Escape 仅举一个例子)。
  2. 当我这样做时,我通常会省略 XML 声明(即 <?xml version="1.0"?> )。这有害吗?
  3. 绩效处罚?如果您坚持正确的字符串连接(即 StringBuilder ),这有什么值得关注的吗?据推测,像 XmlWriter 这样的类还需要做一些字符串操作......
  4. 有更优雅的方式生成 XML,比如使用 XmlSerializer自动序列化/反序列化你的类。好的,我同意。 C# 对此有大量有用的类,但有时我不想为一些非常快速的事情创建一个类,比如写出日志文件或其他东西。这只是我懒惰吗?如果我正在做一些“真实”的事情,这是我处理 XML 的首选方法。

最佳答案

您最终可能会得到无效的 XML,但直到您再次解析它时您才会发现 - 然后为时已晚。我通过艰难的方式学到了这一点。

关于c# - 使用字符串连接构建 XML 有什么不好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3034611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com