属性 vs 子节点

22 浏览
0 Comments

属性 vs 子节点

我对XML还不熟悉,想知道何时应该使用属性,何时应该使用子节点。我猜如果我想将字段用作索引,应该使用属性。例如,目前(为了更好地理解XML),我正在制作一个用于记录日志的程序,所以我有两个主要字段:“日期时间”和“文本”。我认为“日期时间”可能应该是一个属性。

0
0 Comments

Attribute vs Child node这个问题的出现的原因是关于使用XML中的属性和子节点存储数据的选择。文章中提到了一些关于属性的特点,如属性在每个元素中是唯一的,不适合存储多个值,适合存储与元素紧密相关的数据。同时,文章还提到了使用属性存储较长值会导致阅读上的混乱。针对这个问题,作者建议将时间戳作为属性并将文本放置在元素标签之间。

此外,文章还提到了关于XML的一些建议,特别是对于刚开始使用XML的人,建议使用语言提供的XML对象来创建和写入XML。虽然这种方法可能比手动将XML写入字符串更冗长,但它可以防止意外添加非法字符。举例来说,如果文本中有一个"<"符号,手动创建的XML可能会被破坏,而使用XML对象可以自动转义这些非法值。

选择使用属性还是子节点存储数据取决于数据的特点和使用场景。对于唯一且与元素紧密相关的数据,可以选择属性;对于多个值或较长值,以及需要更好的可读性的情况,可以选择子节点。此外,建议使用语言提供的XML对象来创建和写入XML,以避免非法字符的问题。

0
0 Comments

在XML中,属性和子节点是两种不同的元素类型。属性是XML元素的特性或特征,而子节点是元素的嵌套元素。然而,有时可能会遇到将特殊字符(CData)存储在属性中的需求,但是属性不支持CData。

属性不支持CData的原因是由于XML的语法规则。XML属性值必须是纯文本,不能包含标记或特殊字符。这是为了确保XML文档的结构和可解析性。

解决这个问题的方法是将CData存储在子节点中而不是属性中。子节点可以包含CData,因此可以在需要存储特殊字符的情况下使用子节点。

以下是一个示例,说明如何使用子节点存储CData:


  

在上面的示例中,CData被存储在名为"data"的子节点中。这样可以避免将CData存储在属性中的问题。

属性和子节点在XML中具有不同的用途和功能。属性适用于元素的特性或特征,而子节点适用于元素的嵌套元素。如果需要在XML中存储CData(特殊字符),则应该使用子节点而不是属性。

0