我是XML的新手,我想知道何时应该使用属性, 当我应该使用Child节点时。
我的猜测是,如果我想像索引一样使用该字段,我应该使用属性。
例如,我目前(为了了解XML)制作一个程序来保存日志,所以我有2个主要字段“datetime”和“text” 我想也许“datetime”应该是一个属性
答案 0 :(得分:1)
关于属性的主要问题是它们对于每个元素都是唯一的。这意味着不能多次使用相同的名称声明属性,因此通常最好使用它们来存储不应具有多个值的内容。另外,由于语法和它们在元素标签中声明的事实,我发现将它们用于与ids等元素紧密相关的事物是有用的。
另一个经验法则是,我不会对具有长值的事物使用属性,因为它会导致杂乱的读取。就像你的日志文本一样。
对于你的具体问题,我会使用一个属性作为时间戳,并将文本放在元素标签之间。
关于XML的另一条建议,特别是因为您刚刚开始,如果您还没有这样做,则使用该语言提供的XML对象来创建和编写XML。将XML手动写入字符串可能会更加冗长,但它可以避免您在中间意外添加非法字符。
例如,如果您是一个具有<在其中创建类似:
<根和GT; < Log datatime =“sometime”> 这会破坏XML<在那里。 < /日志与GT; <根和GT;
此XML文件将被破坏。 XML对象会自动转义非法值,看起来像
<根和GT; < Log datatime =“sometime”> 这会破坏XML& lt;在那里。 < /日志与GT; < /根和GT;
我希望这会有所帮助并祝你好运。
答案 1 :(得分:0)
属性不能有CData(特殊字符),但节点可以有。 因此,如果您必须放置CData,则无法将其置于属性中。 这是我在做出决定时考虑的一件大事。