什么是属性
属性写在元素的开始标签内部,以键值对 key="value" 的形式,用来给元素提供额外信息。
和 HTML 的属性用法思想一致。
HTML 示例:
<img src="bamn.gif">
<a href="abc.aspx">链接</a>
Code language: HTML, XML (xml)
XML 示例:
<person sex="female"></person>
Code language: HTML, XML (xml)
sex:属性名(key)female:属性值(value)
属性值引号规则
属性值必须用引号包裹,支持双引号 " 或者单引号 '。
- 属性值里面包含双引号:外层用单引号
<gangster name='张三 "zhangsan" 三班'>
Code language: HTML, XML (xml)
- 属性值里面包含单引号:外层用双引号
<person sex="fema'le">
Code language: HTML, XML (xml)
- 也可以使用实体转义字符
"处理双引号
<gangster name="张三 "zhangsan" 三班">
Code language: HTML, XML (xml)
错误:属性值不加引号:
<person sex=female>
属性 vs 子元素
同一个数据,既可以写成属性,也可以写成子元素,由开发者自定义。
写法①:sex 使用 属性
<person sex="female">
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
Code language: HTML, XML (xml)
写法②:sex 使用 子元素
<person>
<sex>female</sex>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
Code language: HTML, XML (xml)
使用属性存在的缺点
- 属性不能存放多个值;子元素可以嵌套多个子节点
- 属性不能描述树形嵌套结构;子元素可以无限嵌套
- 属性不方便后续扩展
- 属性内容多的时候,可读性差、不好维护
开发建议:
尽量用子元素保存业务数据;属性适合存放元信息、标识类信息(id、date 这类附加标记)。
推荐示范:date 做属性,详细日期放子元素
<note date="2010-10-10">
<date>
<day>08</day>
<month>08</month>
<year>2008</year>
</date>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
Code language: HTML, XML (xml)
不推荐:把大量业务数据全部塞到属性里面,标签会非常臃肿难读
<note
day="08"
month="08"
year="2008"
to="George"
from="John"
heading="Reminder"
body="Don't forget the meeting!">
</note>
Code language: HTML, XML (xml)