XML 基础
程序员文章站
2024-01-03 08:28:16
...
XML:
可扩展标记语言
设计宗旨是为了传输和存储数据(HTML是为了显示数据)
标签需要自定义
XML具有自我表述性
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
上面的代码没有任何行为,需要编写软件才能够传送、接受、显示这个文档(XML仅仅是文档)
XML用途:
将数据从HTML中分离
简化数据共享(以纯文本的形式存储)
简化数据传输
简化平台更新(不会损失数据)
XML实例:
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
第一行是XML声明,定义版本以及编码
<note>是根元素,拥有四个子元素<to>、<from>、<heading>、<body>
XML文档形成一种树结构
XML语法:
必须拥有关闭标签
大小写敏感
文档必须有根元素
属性值必须加引号
实体引用(防止冲突):
注释: <!--注释-->
XML的可扩展性:
<note>
<to>George</to>
<from>John</from>
<body>Don't forget the meeting!</body>
</note>
输出结果:
扩展新的XML代码后,仍然可以正常执行
XML属性:
用于提供额外的信息,通常不属于数据组成部分,主要为了便于数据的处理
属性可以使用单引号或者双引号
大部分浏览器都支持XML,对于无效XML文件,浏览器会报告错误
使用XSLT来显示XML:
XML文档:
<!-- Edited with XML Spy v2007 (http://www.altova.com) -->
<breakfast_menu>
<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
<description>
two of our famous Belgian Waffles with plenty of real maple syrup
</description>
<calories>650</calories>
</food>
<food>
<name>Strawberry Belgian Waffles</name>
<price>$7.95</price>
<description>
light Belgian waffles covered with strawberries and whipped cream
</description>
<calories>900</calories>
</food>
<food>
<name>Berry-Berry Belgian Waffles</name>
<price>$8.95</price>
<description>
light Belgian waffles covered with an assortment of fresh berries and whipped cream
</description>
<calories>900</calories>
</food>
<food>
<name>French Toast</name>
<price>$4.50</price>
<description>
thick slices made from our homemade sourdough bread
</description>
<calories>600</calories>
</food>
<food>
<name>Homestyle Breakfast</name>
<price>$6.95</price>
<description>
two eggs, bacon or sausage, toast, and our ever-popular hash browns
</description>
<calories>950</calories>
</food>
</breakfast_menu>
XSLT:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Edited with XML Spy v2007 (http://www.altova.com) -->
<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
<body style="font-family:Arial,helvetica,sans-serif;font-size:12pt;
background-color:#EEEEEE">
<xsl:for-each select="breakfast_menu/food">
<div style="background-color:teal;color:white;padding:4px">
<span style="font-weight:bold;color:white">
<xsl:value-of select="name"/></span>
- <xsl:value-of select="price"/>
</div>
<div style="margin-left:20px;margin-bottom:1em;font-size:10pt">
<xsl:value-of select="description"/>
<span style="font-style:italic">
(<xsl:value-of select="calories"/> calories per serving)
</span>
</div>
</xsl:for-each>
</body>
</html>
结果:
XSLT比CSS更加完善