XML 属性

什么是属性

属性写在元素的开始标签内部,以键值对 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)

属性值引号规则

属性值必须用引号包裹,支持双引号 " 或者单引号 '

  1. 属性值里面包含双引号:外层用单引号
<gangster name='张三 "zhangsan" 三班'>
Code language: HTML, XML (xml)
  1. 属性值里面包含单引号:外层用双引号

<person sex="fema'le">
Code language: HTML, XML (xml)
  1. 也可以使用实体转义字符 &quot; 处理双引号

<gangster name="张三 &quot;zhangsan&quot; 三班">
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)

使用属性存在的缺点

  1. 属性不能存放多个值;子元素可以嵌套多个子节点
  2. 属性不能描述树形嵌套结构;子元素可以无限嵌套
  3. 属性不方便后续扩展
  4. 属性内容多的时候,可读性差、不好维护

开发建议:

尽量用子元素保存业务数据;属性适合存放元信息、标识类信息(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)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注