【问题标题】:Attribute vs Child node属性与子节点
【发布时间】:2011-06-25 01:46:03
【问题描述】:

我是 XML 新手,想知道什么时候应该使用属性, 以及何时应该使用子节点。

我的猜测是,如果我想像索引一样使用该字段,我应该使用属性。

例如,我目前(为了了解 XML)正在制作一个程序来保存日志,所以我有 2 个主要字段“日期时间”和“文本” 我认为也许“日期时间”应该是一个属性

【问题讨论】:

标签: .net xml system.xml


【解决方案1】:

属性的主要特点是每个元素都是唯一的。这意味着不能多次使用相同的名称声明一个属性,因此使用它们来存储不应具有多个值的东西通常是一个好主意。此外,由于语法和它们在元素标记中声明的事实,我发现将它们用于与该元素密切相关的事物(如 id)很有用。

另一个经验法则是,我不会将属性用于具有很长值的事物,因为它会使读取变得混乱。就像您的日志文本一样。

对于您的特定问题,是的,我会使用时间戳属性并将文本放在元素标签之间。

还有一条关于 XML 的建议,特别是因为您刚刚开始使用该语言提供的 XML 对象来创建和编写 XML,如果您还没有这样做的话。它可能比手动将 XML 写入字符串更冗长,但它可以避免您在中间意外添加非法字符。

例如,如果您是一个日志文本,其中有一个

这会破坏 XML

此 XML 文件将被破坏。 XML 对象会自动转义非法值,使其看起来像

这会破坏 XML <在那里。 日志> 根>

我希望这会有所帮助并祝你好运。

【讨论】:

    【解决方案2】:

    属性不能有 CData(特殊字符),但节点可以有。 因此,如果您必须放置 CData,则不能将其放在属性中。 这是我在做决定时考虑的一个主要问题。

    【讨论】:

      猜你喜欢
      • 2021-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-30
      • 1970-01-01
      相关资源
      最近更新 更多