XML属性

XML也可以指定属性的,比如下面的代码:

<?xml version="1.0" encoding="UTF-8" ?>
<SALES><ORDER><ORDERITEM><PRODUCT><CODE>A001</CODE><DESCRIPTION>Almond Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>3</QUANTITY></ORDERITEM><ORDERITEM><PRODUCT><CODE>A002</CODE><DESCRIPTION>Irish Creme Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>5</QUANTITY></ORDERITEM></ORDER><ORDER><ORDERITEM><PRODUCT><CODE>A001</CODE><DESCRIPTION>Almond Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>1</QUANTITY></ORDERITEM><ORDERITEM><PRODUCT><CODE>A004</CODE><DESCRIPTION>Caramel Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>2</QUANTITY></ORDERITEM><ORDERITEM><PRODUCT><CODE>A006</CODE><DESCRIPTION>Gourmet Coffee Travel Thermo</DESCRIPTION><PRICE>18.0</PRICE></PRODUCT><QUANTITY>3</QUANTITY></ORDERITEM></ORDER><ORDER><ORDERITEM><PRODUCT><CODE>A009</CODE><DESCRIPTION>Gourmet Coffee 36 Cup Filters</DESCRIPTION><PRICE>45.0</PRICE></PRODUCT><QUANTITY>100</QUANTITY></ORDERITEM></ORDER>
</SALES>

也可以改成:

<?xml version="1.0" encoding="UTF-8" ?>
<SALES><ORDER><ORDERITEM><PRODUCT code="A001" description="Almond Flavored Syrup" price="9.0"></PRODUCT><QUANTITY>3</QUANTITY></ORDERITEM><ORDERITEM><PRODUCT code="A002" description="Irish Creme Flavored Syrup" price="9.0"></PRODUCT><QUANTITY>5</QUANTITY></ORDERITEM></ORDER><ORDER><ORDERITEM><PRODUCT code="A001" description="Almond Flavored Syrup" price="9.0"></PRODUCT><QUANTITY>1</QUANTITY></ORDERITEM><ORDERITEM><PRODUCT code="A004" description="Caramel Flavored Syrup" price="9.0"></PRODUCT><QUANTITY>2</QUANTITY></ORDERITEM><ORDERITEM><PRODUCT code="A006" description="Gourmet Coffee Travel Thermo" price="18.0"></PRODUCT><QUANTITY>3</QUANTITY></ORDERITEM></ORDER><ORDER><ORDERITEM><PRODUCT code="A009" description="Gourmet Coffee 36 Cup Filters" price="45.0"></PRODUCT><QUANTITY>100</QUANTITY></ORDERITEM></ORDER>
</SALES>

浏览器解析

有关XML属性必知必会

  • 元素的属性表示了元素的额外信息
  • 元素的属性值要加引号,必须加引号
  • 元素的多个属性之间使用空格(“ ”)来分隔
  • 某个元素的某个属性只能有一个值
  • ……

XML属性要慎用

XML的属性不建议大量使用,因为这不是我们使用XML而想看到的。

列举三点因使用属性而可能引起的一些问题:

  • 属性不能包含多个值(元素可以)
  • 属性不能包含树结构(元素可以)
  • 属性不容易扩展(难以应对未来的变化)

XML具有扩展性好的优点,但属性的滥用会带来XML文档的低可读性和低可维护性。
我们应该尽量使用元素来描述数据,而仅仅使用属性来提供与数据无关的信息。

特别是上面的例子,绝对不可取。这种用法,是典型的错误用法,我只是为了表示二者可以转化而已。。。

XML属性的健康使用

有时候会向元素分配 id 引用。这些 id 索引可用于唯一标识 XML 元素,它起作用的方式与 HTML 中 id 属性是类似的。

比如下面的代码:

<?xml version="1.0" encoding="UTF-8" ?>
<SALES><ORDER><ORDERITEM><PRODUCT id="202003010001"><CODE>A001</CODE><DESCRIPTION>Almond Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>3</QUANTITY></ORDERITEM><ORDERITEM><PRODUCT id="202003010002"><CODE>A002</CODE><DESCRIPTION>Irish Creme Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>5</QUANTITY></ORDERITEM></ORDER><ORDER><ORDERITEM><PRODUCT id="202003010003"><CODE>A001</CODE><DESCRIPTION>Almond Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>1</QUANTITY></ORDERITEM><ORDERITEM><PRODUCT id="202003010004"><CODE>A004</CODE><DESCRIPTION>Caramel Flavored Syrup</DESCRIPTION><PRICE>9.0</PRICE></PRODUCT><QUANTITY>2</QUANTITY></ORDERITEM><ORDERITEM><PRODUCT id="202003010005"><CODE>A006</CODE><DESCRIPTION>Gourmet Coffee Travel Thermo</DESCRIPTION><PRICE>18.0</PRICE></PRODUCT><QUANTITY>3</QUANTITY></ORDERITEM></ORDER><ORDER><ORDERITEM><PRODUCT id="202003010006"><CODE>A009</CODE><DESCRIPTION>Gourmet Coffee 36 Cup Filters</DESCRIPTION><PRICE>45.0</PRICE></PRODUCT><QUANTITY>100</QUANTITY></ORDERITEM></ORDER>
</SALES>

上面的 id 属性仅仅是一个标识符,用于标识不同的便签。它并不是便签数据的组成部分,所以不会有害,是XML属性的有益使用。

补充——特殊的实体字符

总结

元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。

【XML】XML元素属性详解相关推荐

  1. 【JAVA秘籍心法篇-Spring】Spring XML解析源码详解

    [JAVA秘籍心法篇-Spring]Spring XML解析源码详解 所谓天下武功,无坚不摧,唯快不破.但有又太极拳法以快制慢,以柔克刚.武功外式有拳打脚踢,刀剑棍棒,又有内功易筋经九阳神功.所有外功 ...

  2. pythonxml库_对python 生成拼接xml报文的示例详解

    最近临时工作要生成xml报名,通过MQ接口发送.简单小程序. 自增长拼成xml报文 Test_001.py # encoding=utf-8 import time orderId = '' s1= ...

  3. java 配置jmstemplate_SpringBoot集成JmsTemplate(队列模式和主题模式)及xml和JavaConfig配置详解...

    1.导入jar包: org.springframework.boot spring-boot-starter-activemq org.apache.activemq activemq-pool 2. ...

  4. Spring中,applicationContext.xml 配置文件在web.xml中的配置详解

    Spring中,applicationContext.xml 配置文件在web.xml中的配置详解 2016年10月04日 15:22:26 阅读数:7936 转自http://www.cnblogs ...

  5. HTML中元素的position属性详解

    HTML中元素的position属性详解 转载自:https://blog.csdn.net/wangzunkuan/article/details/81540935 HTML中DOM元素有5种定位属 ...

  6. Android EditText 属性详解

    Android EditText 属性详解 EditText,本文包含大部分开发中用到的属性. Android开发之EditText属性详解 1.EditText输入的文字为密码形式的设置 (1)通过 ...

  7. android layout_width 属性,android:layout_weight属性详解

    在android开发中LinearLayout很常用,LinearLayout的内控件的android:layout_weight在某些场景显得非常重要,比如我们需要按比例显示.android并没用提 ...

  8. java rollback_Spring中的@Transactional(rollbackFor = Exception.class)属性详解

    序言 今天我在写代码的时候,看到了.一个注解@Transactional(rollbackFor = Exception.class),今天就和大家分享一下,这个注解的用法: 异常 如下图所示,我们都 ...

  9. java log4配置例子,log4j.properties配置属性详解与配置示例

    log4j.properties配置属性详解与配置示例 发布时间:2018-03-27作者:laosun阅读(1535) log4j.properties配置属性详解与配置示例,拿走直接用!详细解答了 ...

最新文章

  1. 大量多风格多功能后台管理模板
  2. Apache 配置虚拟目录、主机的疑惑及解决
  3. Bootstrap组件1_字体图标
  4. [工具]微软的学习平台Microsoft Learn很好用,推荐一下
  5. Python爬虫项目---批量下载深圳证券信息
  6. 物化视图(materialized view) 实现数据迁移、数据定时同步
  7. 记一次非典型MySQL排错
  8. 仿淘宝收货地址,本地数据库
  9. 中国科学家dna计算机,我国首台DNA计算机问世
  10. 文件被别的程序打开无法删除怎么办?
  11. 精致简约的高速下载神器 - Motrix~~高速下载百度网盘资源!
  12. 计算机组成原理学习笔记(四)指令系统(学习王道)
  13. Ceph学习——客户端读写操作分析
  14. win10每回打开程序都弹出“是否允许更改设置”提示怎么办
  15. 如何用ssh隧道绕过防火墙
  16. 前端开发工程师必读书籍有哪些值得推荐?
  17. 《c primer plus》第六版|第二章|编程练习答案
  18. 【Python 3.7】喜欢的数字:使用一个字典来存储一些人喜欢的数字。
  19. 图像去雾算法的原理、实现、效果
  20. PHOTOSHOP 500典例特制 EXE电子书[转载]

热门文章

  1. 实验一 软件工程准备
  2. Java 面向对象的设计原则
  3. Linq GroupJoin 使用
  4. Reset RequiredFieldValidator 重置 验证控件
  5. 控件列[Coolite]上传文件
  6. mybatis使用过程遇到的一些问题及解决方法
  7. Linux7使用光盘作为本地repo源
  8. HTML中del标记是什么意思,HTML del标记
  9. php实现tcp连接的原理,PHP实现TCP实例
  10. php中常用的运算符和表达式有哪几种,php 运算符与表达式详细介绍