§ ITPOW >> 文档 >> XML

XML教程(2)--XML元素与XML属性值

作者:jsper 来源: 日期:2002-8-8
  XML元素是可扩展的.也就意味着XML文档内容可以随时通过扩展来储存更多的数据信息. 

e.g:

<?xml version="1.0" encoding="GB2312"?> 
<龙虾大餐> 
<价格>枪毙你的工资</价格> 
<口感>一斑斑</口感> 
<副作用>闹肚子</副作用> 
</龙虾大餐>

  这时,如果我们要通过我们的应用程序或其他的东西来输出这段数据的部分内容,如<价格>,<口感>,<副作用>.将会现实如下结果(输出结果因你的输出形式确定,xml数据内容本身不做改变) 

e.g:

关于龙虾大餐 
价格:枪毙你的工资 
口感:一斑斑 
副作用:闹肚子 
欢迎您品尝 (此例子为假想例子,除数据内容为实外其他皆为假想,请不要搞乱你的头绪) 

  当输出后我们忽然发现,还需要向数据中添加新的数据,该怎么办呢? 

  很简单,直接夹在XML数据中即可. 
e.g:

<?xml version="1.0" encoding="GB2312"?> 
<龙虾大餐> 
<价格>枪毙你的工资</价格> 
<口感>一斑斑</口感> 
<副作用>闹肚子</副作用> 
<意见>可以用活的龙虾代替么?</意见> 
<感想>还是有钱好,起码饭后还有钱付治疗肠胃的医药费 
</感想> 
</龙虾大餐> 

  一定有人会问"这样添加数据会影响到前面的假想例子么?".呵呵,不会! 

  在我们添加数据后,上面的假想例子依然输出同样的结果.而且也可以通过改变应用程序来显示我们新加入的数据. 

  XML元素间关系,由于XML元素必须规定根元素,所以根元素以下的元素都为子元素,相互为兄弟元素关系,为了数据存储方便,请确保子元素内容与根元素相关,并且各个兄弟元素间也最好有逻辑上的关联. 

  XML元素内容,一个完整的XML文件由于它的用于储存数据的特性决定它一定要有内容,而它的内容则是被声明在各个元素之中的,在这里,这个内容可以是空白内容,也可以是简单的文本或单一数据,也可以复杂的多个数据列,甚至还可以是其他的分类子元素. 

  XML元素命名规则,同java,c等命名规则类似,可以是英文字母或中文作为元素名(也可以是其他语言,但要首先确保你的数据读取软件可以支持),可以用数字和字母作为名字开头,名称中不能出现空格!!!可以用下划线"_"取代空格的功能来进行详细命名,而且在名称中严禁出现":"号 

XML系列教程第三讲-XML属性值


  前面的讲座中曾经出现过元素的属性值. 

e.g:

<我的故事 价值="无价之宝"> 
......... 
</我的故事>

  其中价值="无价之宝" 这段代码就是根元素"我的故事"的属性值

  那么,属性值可以做什么呢?xml中的属性值可以被用来为元素添加额外的说明信息.其实我们很早以前就已经接触过属性值,而且频率非常的高,那就是出现在html中的属性值. 

e.g:
<font size="7" color="red">属性值在html中的运用</font> 
~~~~~~~~ ~~~~~~~~~~~ 
<a href="http://go.go.go">到处都是属性值的运用</a> 
  在xml中,我们也可以应用属性值到元素,但不要太频繁,毕竟XML是用来储存和发送数据信息的,因此它的可扩展性就显得非常重要,我们可能随时需要向xml文件中添加数据,虽然使用属性值可以方便的为元素添加额外信息说明,但是这样做非常不利于日后的维护和更新...更何况,这些事情使用元素来做才是正确真正的选择(因此,本人不推荐频繁使用属性值). 

e.g:

属性值运用

<?xml version="1.0" encoding="GB2312"?> 
<我的介绍 姓名="jsper" 性别="unknow" 职业="无" 联系方式="jsper@371.net"> 
</我的介绍> 

不使用属性值 

<?xml version="1.0" encoding="GB2312"?> 
<我的介绍> 
<姓名>jsper</姓名> 
<性别>unknow</性别> 
<职业>无</职业> 
<联系方式>jsper@371.net</联系方式> 
</我的介绍> 

  显而易见,频繁的使用属性值很难与维护和更新,而且,使用属性值还有一系列的弱点---
1,属性值不可以包含多重数值(元素可以);
2,属性值难于扩展(考虑到长远打算);
3,属性值不能够用于描述结构内容(子元素则可以);
4,属性值很难通过DTD来进行一个测试(关于DTD的介绍,请期待后续教程) 

  也许你们的语法老师都告诉过你们这样一句话"是规则就有例外",在这里也同样应验...毕竟属性值也不是一无是处^_^.我们可以用数值来表示同一元素的不同内容.如下 

e.g:
<?xml version="1.0" encoding="GB2312"?> 
<通讯薄> 
<我的网友 编号="008"> 
<姓名>飞鸟</姓名> 
<性别>未知</性别> 
<联系方式>不详</联系方式> 
</我的网友> 

<我的网友 编号="009"> 
<姓名>飞鱼</姓名> 
<性别>中性</性别> 
<联系方式>未知</联系方式> 
</我的网友> 
</通讯薄> 

  在这里,我们用的是数字来区分元素"我的网友",当然你也可以用其他的方式来区分.例如"编号="一号"
相关文章