元素 vs. 属性
编辑教程元素 vs. 属性
XML 元素:指的是从开始标签到结束标签的部分,元素可包含其他元素、文本或者两者的混合物,并且元素也可以拥有属性。
XML 属性:提供关于元素的额外的信息。
在XML中,并有没有规定何时使用属性,以及何时使用子元素。
使用元素 vs. 属性
数据可以存储在子元素或属性中。
让我们来看下这些实例:
<person sex="female">
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
<person>
<sex>female</sex>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
在第一个例子中"sex"是一个属性。在后面一个例子中,"sex"是一个子元素。但是两者都提供了相同的信息。
没有特别规定何时使用属性,以及何时使用子元素。我的经验是在HTML中多使用属性,但在XML中,使用子元素,会感觉更像数据信息。
我喜欢的方式
我喜欢在子元素中存储数据
下面的三个XML文档包含完全相同的信息:
本例中使用"date"属性:
<note date="12/11/2002">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
本例中使用"date"元素:
<note>
<date>12/11/2002</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
本例中使用了扩展的"date" 元素: (这是我最喜欢的方式):
<note>
<date>
<day>12</day>
<month>11</month>
<year>2002</year>
</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
避免使用属性?
你应该避免使用属性?
一些属性具有以下问题:
属性不能包含多个值(子元素可以) | |
---|---|
属性不容易扩展(为以后需求的变化) | |
属性无法描述结构(子元素可以) | |
属性更难以操纵程序代码 | |
属性值是不容易测试,针对DTD |
如果您使用属性作为数据容器,最终的XML文档将难以阅读和维护。 尝试使用 元素 来描述数据。 to describe data. 只有在提供的数据是不相关信息时我们才建议使用属性。
不要这个样子结束(这不是XML应该使用的):
<note day="12" month="11" year="2002"
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>
一个属性规则的例外
规则总是有另外的
关于属性的规则我有一个例外情况。
有时我指定的 ID 应用了元素。这些 ID 应用可在HTML中的很多相同的情况下可作为 NAME 或者 ID 属性来访问 XML 元素。以下实例展示了这种方式:
<messages>
<note id="p501">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
<note id="p502">
<to>Jani</to>
<from>Tove</from>
<heading>Re: Reminder</heading>
<body>I will not!</body>
</note>
</messages>
以上实例的XML文件中,ID是只是一个计数器,或一个唯一的标识符,来识别不同的音符,而不是作为数据的一部分。
Mos固件,小电视必刷固件
ES6 教程
Vue.js 教程
JSON 教程
jQuery 教程
HTML 教程
HTML 5 教程
CSS 教程
CSS3 教程
JavaScript 教程
DHTML 教程
JSON在线格式化工具
JS在线运行
JSON解析格式化
jsfiddle中国国内版本
JS代码在线运行
PHP代码在线运行
Java代码在线运行
C语言代码在线运行
C++代码在线运行
Python代码在线运行
Go语言代码在线运行
C#代码在线运行
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。
大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
选择支付方式:
立即支付
¥
9.99
无法付款,请点击这里
金额: 0 元
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟