什么时候可以使用XML文件来保存信息?

使用XML保存信息的原因是什么?

可能有很多原因:像任何其他文件格式一样,它有利有弊:

优点:

  • .Net本身支持将对象序列化为xml,并再次反序列化它们。
  • 与二进制格式或JSON相比,它对人眼更具可读性和描述性
  • 可以根据模式轻松validation它,以确保其格式正确。
  • 它可以使用其他工具加载和解析。
  • 与原生的.Net二进制序列化格式不同,它可以与其他平台/语言轻松互换
  • 它可以被转换,你可以在它上面运行xpath。

缺点:

  • 它比原生的.Net二进制序列化格式或JSON更冗长
  • 它不存储有关已反序列化为xml的类的类型信息,而本机二进制格式则存储类型信息。

它是一个可移植的,可解析的标准。

因此,如果您有需要由多个不同程序(可能还有人)读取的数据,则可以使用XML。

validation和转换(通过XSLT)到其他格式也相对容易。

显然你可以使用其他格式,但这并不能阻止你使用XML。

反转你的问题可能是一个好主意:何时使用XML来保存信息是不是可以的?

  • 当您只需要频繁附加数据时,规范示例是日志文件。 XML将要求您解析整个文档并找到正确的插入位置,以免破坏格式良好的结构

  • 当您只需要经常查询文件中的某些项目时。 XML随机访问文件的某些部分可能效率不高。 使用一种格式可以更好地处理这种格式,该格式将频繁访问的信息存储在众所周知的偏移量中,因此不需要解析文件。

  • 存储非分层的顺序数据时,通常有更好的XML替代方案。 考虑图像,音频或video文件格式。

标准行是“用于人类可读计算机可读数据”

但是像JSON这样的其他格式不那么冗长,同样多才多艺。

我们用它来保存我们的机器配置文件。 我们在现场有很多机器可以通过多种不同方式进行配置。 我们可以使用DataContract或Xml序列化程序,它易于实现。

对我们来说,好处是我们可以轻松区分这些文件以查看机器之间的差异。