王朝网络
分享
 
 
 

XML简明教程(四)

王朝other·作者佚名  2006-01-09
宽屏版  字体: |||超大  

四、xslt简介

了解XML的基本语法、Schema的语法还远远不够,XML是对数据和数据结构的存储,而Schema是对XML数据类型的定义。直到这

里还没有对XML数据的显示进行处理。虽然可以通过内置有XML解析器的浏览器直接对XML数据进行查看,但毕竟看到的只是以树状结构

显示的XML数据。

如果要把XML数据以漂亮的形式显示出来就需要XSLT帮忙了。XSLT可以把XML处理成HTML形式输出、WAP形式输出,甚至也可以

是Word文档的格式。其中最常用到的还是HTML的格式,下面讲解中用到的所有例子都以HTML的转换格式为例子。那就不说废话了,还

是先看一个XSLT的例子吧!

这个XSLT用到的一个XML文档,文档如下:

<?xml version = "1.0" encoding="GB2312"?>

<?xml:stylesheet type="text/xsl" href="s_xlt.xslt"?>

<resumes>

<resume>

<name>张立东</name>

<sex>男</sex>

<age>28</age>

<birthday>

<year>1974</year>

<month>8</month>

<day>10</day>

</birthday>

<address>北京市 海淀区</address>

</resume>

<resume>

<name>张三</name>

<sex>男</sex>

<age>50</age>

<birthday>

<year>1951</year>

<month>6</month>

<day>9</day>

</birthday>

<address>山西省</address>

</resume>

<resume>

<name>李四</name>

<sex>男</sex>

<age>29</age>

<birthday>

<year>1973</year>

<month>7</month>

<day>12</day>

</birthday>

<address>山东省</address>

</resume>

</resumes>

注:在上面的XML文档中多了下面的一句:

<?xml:stylesheet type="text/xsl" href="s_xlt.xslt"?>

这一句就是对XSLT的引用,其中href中的内容是对具体XSLT文档位置的指定,有关s_xlt.xslt中的内容就是下面要介绍的XSL

T例子的内容。有关如何对XML,XLST、Schema的使用和测试,可以参考“一个应用了xml、schema和xlst的例子”部分。

对这个XML文档进行转换处理的XSLT文档如下:

[1]<?xml version="1.0" encoding="GB2312"?>

[2]<xsl:stylesheet version="1.0" xmlns:xsl="' target=_blankhttp://www.w3.org/TR/WD-xsl">

[3] <xsl:template match="/">

[4] <HTML>

[5] <HEAD>

[6] <TITLE>个人简历</TITLE>

[7] </HEAD>

[8] <BODY>

[9] <xsl:for-each select="/resumes/resume">

[10] <P>

[11] <TABLE border="1" >

[12] <CAPTION style="font-size: 150%; font-weight: bold">

[13] 个人简历

[14] </CAPTION>

[15] <TR>

[16] <TH>姓名</TH><TD><xsl:value-of select="name"/></TD>

[17] <TH>性别</TH><TD><xsl:value-of select="sex"/></TD>

[18] <TH>生日</TH><TD><xsl:value-of select="birthday/year"/>年

<xsl:value-of select="birthday/month"/>月<xsl:value-of select="birthday/day"/>日</TD>

[19] </TR>

[20] <TR>

[21] <TH>地址</TH><TD colspan="5"><xsl:value-of select="address"/></TD>

[22] </TR>

[23] </TABLE>

[24] </xsl:for-each>

[25] </BODY>

[26] </HTML>

[27] </xsl:template>

[28]</xsl:stylesheet>

[1]XML的序言,从第一条语句可以看出XSLT也是符合XML语法的。

[2]XSLT的名域。Xsl:stylesheet是XSLT的根元素,xsl是XSLT的名域标识。所以都要在XSLT的语句前面加上xsl:来表明是XSLT

的语句。

[3] <xsl:template match="/"> 是XSLT语言的匹配模式,主要是和引用它的XML文档的根进行匹配。其中/是代表XML文档根的含

义。 例如:个人简介中的name可以用/resumes/resume/name

的方式进行引用。(由于这里只是对XSLT入门的一个初步介绍,对有关XML路径想详细了解的读者可以参考XML文档的XPATH部分。)

[4]-[8]可以直接输出,这部分是符合HTML语法的信息结构,HTML文档的开始部分和head的定义。

[9] <xsl:for-each select="/resumes/resume">是XSLT语言的选择模式,是循环的对所有的/resumes/resume元素和这个元素所

包含的子元素进行处理。

[10]-[15] 可以直接输出,符合HTML的语法结构。

[16] <TH>姓名</TH><TD><xsl:value-of select="name"/></TD>

在这一行中有HTML的语句和也有XSLT的语句。其中<xsl:value-of select="name"/>也是属于选择模式的语句,可以直接把select选中

的元素内容提取处理,处理以后的结果应该是:<TH>姓名</TH><TD>张立东</TD>。

[18]-[23]分别是对其他部分信息的显示处理,其中也包含了部分的HTML语句。

[24] <xsl:for-each> 语句的结束部分。

[25]-[26]HTML语句。

[27] <xsl:template> 语句的结束部分。也就是对整个XML文档处理的结束。因为每个XML文档只有一个根而这条语句是对根的部

分处理,所以是对整个XML文档处理的结束。

[28] XSLT文档的结束。

经上面对这个简单例子的介绍,大家对XSLT对XML文档的处理可能已经有了一个基本的了解,可以简单的通过XSLT对XML进行

处理啦。在结束这个部分之前对XSLT的语法做一个简单的小结:

可以大致的把模式语言分为三种:

选择模式

<xsl:for-each>、<xsl:value-of>,和 <xsl:apply-templates>

测试模式

<xsl:if> 和<xsl:when>

匹配模式

<xsl:template>

选择模式语句将数据从XML中提取出来,这是一种简单获得数据的方法。这几个标记都有一个select属性,选取XML中特定结

点名的数据。

测试模式是对数据的一个判断,然后根据判断和匹配的结果进行处理。有些和程序语言中的判断语句和多判断语句形似。

匹配模式是一个可以单独列出来的XSLT语句片断,可以完成对一个特定部分的XSLT处理。有些和程序设计中的子程序相似。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有