【问题标题】:When is it OK to use an XML file to save information?什么时候可以使用 XML 文件来保存信息?
【发布时间】:2010-06-23 23:11:19
【问题描述】:

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

【问题讨论】:

    标签: c# .net xml


    【解决方案1】:

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

    优点:

    • .Net 原生支持将对象序列化为 xml,然后再次反序列化它们。
    • 人眼比二进制格式或 JSON 更具可读性和描述性
    • 很容易针对架构进行验证,以确保其格式正确。
    • 可以用其他工具加载和解析。
    • 与原生 .Net 二进制序列化格式不同,它很容易与其他平台/语言互换
    • 它可以被转换,你可以在它上面运行 xpath。

    缺点:

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

    【讨论】:

      【解决方案2】:

      这是一个可移植的、可解析的标准。

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

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

      显然您可以使用其他格式,但这并不妨碍您使用 XML。

      【讨论】:

        【解决方案3】:

        倒转你的问题可能是个好主意:什么时候不能使用 XML 来保存信息?

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

        • 当您只需要经常查询文件中的某些项目时。 XML 可能无法有效地随机访问文件的某些部分。使用以众所周知的偏移量存储经常访问的信息的格式可能会更好地处理此问题,因此不需要解析文件。

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

        【讨论】:

          【解决方案4】:

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

          但是像 JSON 这样的其他格式不那么冗长,而且同样通用。

          【讨论】:

          • 我不会说更容易,但肯定不那么冗长。
          • 不同意 JSON。 JSON 只适合机器阅读且易于破解。
          • ......它的冗长性相当低
          【解决方案5】:

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

          对我们的好处是,我们可以轻松地比较这些文件以查看机器之间的差异。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-02-24
            • 1970-01-01
            • 2020-07-05
            • 1970-01-01
            • 2016-06-27
            • 2012-07-09
            • 2010-12-28
            • 1970-01-01
            相关资源
            最近更新 更多