找到一个实际应用的例子,是英语统考打印准考证的实例,关于xml和xsl配合使用的。

下面看看xml文档

<?xml version='1.0' encoding='utf-8' ?>
<?xml-stylesheet type='text/xsl' href='ExamCards.xsl' ?>
<UnitsExamCards><ExamCard><StudentCode>16123454</StudentCode><StudentName><![CDATA[孟XX]]></StudentName>
<Sex>男</Sex><ExamCode>C8001229692</ExamCode><CertificateName>身份证</CertificateName>
<CertificateCode>345678198304010036</CertificateCode>
<ExamUnitName><![CDATA[上海市普陀区业余大学]]></ExamUnitName>
<ExamUnitCode>310004</ExamUnitCode>
<Photo>photo\eb214718-f813-4cc5-9a9d-abc2d40faaa2</Photo>
<ExamArrange><Arrange_CE><ExamSubject>
<SubjectName><![CDATA[大学英语B]]></SubjectName><ExamTime>2014年09月13日 16:30 - 18:00</ExamTime>
<RoomName><![CDATA[222室(七机房)]]></RoomName>
<SeatNO>26</SeatNO><ExamSite><Address><![CDATA[上海市普陀区曹杨路805号]]></Address>
<Busline><![CDATA[乘706、743、950、768、62、740、838、562路到三汽公司站下,
乘轨道交通3号、4号线到曹杨路站下,乘94、44、876、143、63路到曹杨六村站下。]]></Busline>
<Tel><![CDATA[021-32240841]]></Tel>
</ExamSite></ExamSubject></Arrange_CE></ExamArrange></ExamCard></UnitsExamCards>

下面是xsl文档的内容

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > <xsl:template match="/UnitsExamCards">
<html>
<body style="text-align:center">
<xsl:for-each select="ExamCard">
<table width="650px" border="1" cellspacing="0" cellpadding="5">
<tr>
<td>
<!--标题-->
<div style="text-align:center; font-weight:bold;width:100%;margin:5px 0px 0px 0px">
<p>
<xsl:text >试点高校网络教育部分公共基础课统一考试</xsl:text>
<br/>
<xsl:text>准 考 证</xsl:text>
</p>
</div>
<!--学生基本信息-->
<div style="width:100%;margin:10px 0px 0px 0px">
<table border="1" cellpadding="2" cellspacing="0" style="font-size:10pt;width:100%;border-collapse:collapse">
<tr>
<td style="text-align:center;font-weight:bold;width:150px">
<xsl:text>姓名:</xsl:text>
</td>
<td>
<xsl:value-of select="StudentName"/>
</td>
<!--照片-->
<td rowspan="7" width="120px" align="center">
<xsl:element name="img">
<xsl:attribute name="width">108px</xsl:attribute>
<xsl:attribute name="height">150px</xsl:attribute>
<xsl:attribute name="src">
<xsl:value-of select="Photo"></xsl:value-of>
</xsl:attribute>
</xsl:element>
</td>
</tr>
<tr>
<td style="text-align:center;font-weight:bold">
<xsl:text>性别:</xsl:text>
</td>
<td>
<xsl:value-of select="Sex"/>
</td>
</tr>
<tr>
<td style="text-align:center;font-weight:bold">
<xsl:text>准考证号:</xsl:text>
</td>
<td>
<xsl:value-of select="ExamCode"/>
</td>
</tr>
<tr>
<td style="text-align:center;font-weight:bold">
<xsl:text>身份证件名称:</xsl:text>
</td>
<td>
<xsl:value-of select="CertificateName"/>
</td>
</tr>
<tr>
<td style="text-align:center;font-weight:bold">
<xsl:text>身份证件号码:</xsl:text>
</td>
<td>
<xsl:value-of select="CertificateCode"/>
</td>
</tr>
<tr>
<td style="text-align:center;font-weight:bold">
<xsl:text>考点代码:</xsl:text>
</td>
<td>
<xsl:value-of select="ExamUnitCode"/>
</td>
</tr>
<tr>
<td style="text-align:center;font-weight:bold">
<xsl:text>考点名称:</xsl:text>
</td>
<td>
<xsl:value-of select="ExamUnitName"/>
</td>
</tr>
</table>
</div>
<!--考试安排-->
<div style="text-align:center; font-weight:bold;width:100%;margin:10px 0px 0px 0px">
<xsl:text >考试安排</xsl:text>
<table border ="1" cellspacing="0" cellpadding="2" style="font-size:10pt;width:100%;text-align:center;border-collapse:collapse">
<xsl:if test="ExamArrange/Arrange_WE">
<tr>
<td colspan="4" style="font-weight :bold;text-align:left">笔试考试</td>
</tr>
<tr style="background-color:#DADADA">
<td width="100">
<xsl:text>考试科目</xsl:text>
</td>
<td>
<xsl:text>考试时间</xsl:text>
</td>
<td>
<xsl:text>考场名称</xsl:text>
</td>
<td>
<xsl:text>座位号</xsl:text>
</td>
</tr>
<xsl:for-each select="ExamArrange/Arrange_WE/ExamSubject">
<tr>
<td>
<xsl:value-of select="SubjectName"/>
</td>
<td>
<xsl:value-of select="ExamTime"/>
</td>
<td>
<xsl:value-of select="RoomName"/>
</td>
<td>
<xsl:value-of select="SeatNO"/>
</td>
</tr>
<tr>
<td>
<xsl:text>考场地址</xsl:text>
</td>
<td colspan="3" style="text-align:left">
<xsl:value-of select="ExamSite/Address"/>
</td>
</tr>
<tr>
<td>
<xsl:text>乘车路线</xsl:text>
</td>
<td colspan="3" style="text-align:left">
<xsl:value-of select="ExamSite/Busline"/>
</td>
</tr>
<tr>
<td>
<xsl:text>咨询电话</xsl:text>
</td>
<td colspan="3" style="text-align:left">
<xsl:value-of select="ExamSite/Tel"/>
</td>
</tr>
</xsl:for-each>
</xsl:if>
<xsl:if test="ExamArrange/Arrange_CE">
<tr>
<td colspan="4" style="font-weight :bold;text-align:left">机(网)考</td>
</tr>
<tr style="background-color:#DADADA">
<td width="100">
<xsl:text>考试科目</xsl:text>
</td>
<td>
<xsl:text>考试时间</xsl:text>
</td>
<td>
<xsl:text>考场名称</xsl:text>
</td>
<td>
<xsl:text>座位号</xsl:text>
</td>
</tr>
<xsl:for-each select="ExamArrange/Arrange_CE/ExamSubject">
<tr>
<td>
<xsl:value-of select="SubjectName"/>
</td>
<td>
<xsl:value-of select="ExamTime"/>
</td>
<td>
<xsl:value-of select="RoomName"/>
</td>
<td>
<xsl:value-of select="SeatNO"/>
</td>
</tr>
<tr>
<td>
<xsl:text>考场地址</xsl:text>
</td>
<td colspan="3" style="text-align:left">
<xsl:value-of select="ExamSite/Address"/>
</td>
</tr>
<tr>
<td>
<xsl:text>乘车路线</xsl:text>
</td>
<td colspan="3" style="text-align:left">
<xsl:value-of select="ExamSite/Busline"/>
</td>
</tr>
<tr>
<td>
<xsl:text>咨询电话</xsl:text>
</td>
<td colspan="3" style="text-align:left">
<xsl:value-of select="ExamSite/Tel"/>
</td>
</tr>
</xsl:for-each>
</xsl:if>
</table>
</div>
<!--考生须知-->
<div style="text-align:center; font-weight:bold;margin:10px 0px 0px 0px">
<xsl:text >考生须知</xsl:text><br/>
<span style="text-align:left;width:100%">
<p style="text-align:center;font-size:9pt;font-weight:normal;margin:5px 8px 3px 10px"><b>本人参加考试,承认已完整阅读《考生须知》各项内容,并自愿遵守相关规定。</b></p>
<p style="font-size:9pt;font-weight:normal;margin:5px 8px 3px 10px">
1.考生须携带第二代居民身份证(现役军人可凭军官证、士兵证;港、澳、台地区考生可凭港、澳、台通行证或护照;外籍考生可凭护照)和准考证参加考试。到达考点后须配合考点工作人员做好入场验证工作。未携带有效身份证件的考生一律不得进入考室。 <br/>
2.考生须按照考点工作人员要求将携带的物品放在指定位置,已带入考室者,若不按监考教师指定的位置进行存放,对考生按违纪行为处理。各种通讯工具必须关机,并且不得随身携带或者放在考桌上,不服从者按作弊处理。<br/>
3.考试开始后,考生方可答卷。考试开始30分钟后,迟到考生不得进入考室。考生在开考30分钟后方可交卷 ,交卷考生不得在考室附近逗留,不得再返回考室续考。<br/>
4.考生参加考试时,如果遇到意外、灾害、停电、服务器、考试机等故障,无法正常考试,应服从监考教师安排,对无理取闹者按照相关规定严肃处理。<br/>
5.考生必须服从监考教师的管理,自觉维护考试秩序。考试结束时间一到,须停止答题,提交试卷后立即离场。<br/>
6.有考试违纪行为的考生,其相关科目成绩无效;有作弊行为的考生,其当次考试全部科目成绩无效,并视情节严重停考两次;代替他人或由他人代替参加考试的考生,取消其统考资格,同时也不再享有任何相关的免考政策。考试结束后,将在"中国远程教育网"上公布违纪、作弊考生的相关信息。<br/>
7.统考考试纪律举报电子邮箱:jubao@mail.open.com.cn。
</p>
</span>
</div>
</td>
</tr>
</table>
<br style="page-break-after:always"/>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

其中xsl文件中使用了很多的xsl:html元素,例如:<xsl:text>等等,其中我想说明的是图片img的用法,在使用其他元素可以依此类推相同的用法;

打印准考证上面是有图片的,可以看看语法及结构,英文好的你也可以看看w3c的官方说明:http://www.w3.org/1999/XSL/Transform

在xml中的定义很简单,就一句话,

<Photo>photo\eb214718-f813-4cc5-9a9d-abc2d40faaa2</Photo>

是路径信息,在photo目录下面有个eb214718-f813-4cc5-9a9d-abc2d40faaa2文件,没有任何扩展名,通过   根据文件头数据判断文件类型  可以知道文件类型是JPG文件,我们在看看xsl文件中对他的解析:

<td rowspan="7" width="120px" align="center">
<xsl:element name="img">
<xsl:attribute name="width">108px</xsl:attribute>
<xsl:attribute name="height">150px</xsl:attribute>
<xsl:attribute name="src">
<xsl:value-of select="Photo"></xsl:value-of>
</xsl:attribute>
</xsl:element>
</td>

使用的是img元素,并且内部属性定义了宽、高,src属性使用嵌套的形式赋值,通过这里可以看出xml和xsl想结合使用的实例

如果还有很多不明白的,可以看看我前面的一些关于xml相关的文章,其中有很多是讲xsl文件的用法的说明。

xml和xsl配合使用实例的更多相关文章

  1. XML通过XSL格式化的那点事(XML到自定义节点折叠显示)

    引言 有时我们想看下系统生成的XML文件(如XML格式的Project文件),如果文件结构简单,我们浏览器看起来还比较方便,但是随着XML schema复杂后就变得让人头疼啦,单独写一个程序去做展现又 ...

  2. htm,html,xhtml,xml,xsl,dhtml,shtm和shtml的区分

    介绍一下htm,html,xhtml,xml,shtml的区分,以下内容来自百度后的知识整理. HTML和htm: HTML(Hypertext Markup Language)超文本传输语言,是ww ...

  3. XML、XSL、XSLT、DTD、XSD的区别

    前言: 在众神的努力之下,js已经可以跨出浏览器走向不同的领域了 也因为这个,对前端工程师的要求也不仅仅是会写写h5页面做交互.前端涉及的领域越来越广,对开发人员对素质能力要求越高. 以前因设备不同导 ...

  4. XSD(XML Schema Definition)用法实例介绍以及C#使用xsd文件验证XML格式

    XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD),作用是定义 XML 文档的合法构建模块,类似 DTD,但更加强大. 作用有: ①定义 ...

  5. Java解析XML文档(简单实例)——dom解析xml

      一.前言 用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object ...

  6. C# XML流操作简单实例

    这里我们先介绍操作XML文件的两个对象:XmlTextReader和XmlTextWriter打开和读取Xml文件使用到的对象就是XmlTextReader对象.下面的例子打开了与程序在同一路径下的一 ...

  7. XML XSD XSL区别与联系

    XML: XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准 ...

  8. XSL简单实例

    利用xsl可以做到将数据和格式完全分离,下面比较一个xml+css和xml+xsl的区别. XML + css resume.xml文件内容如下: <?xml version="1.0 ...

  9. C#中将xml文件反序列化为实例时采用基类还是派生类的问题

    基类: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ...

随机推荐

  1. Arduino 电平转换 升压 OUTPUT与9V/12V元件通信

    原因 网络上有不少怎么让Arduino的5V电平转换成3.3V电平,从而和工作在3.3V下的芯片相互沟通的教程.但是如果想驱动高于5V电压的芯片,就找不到教程了.因此今天我来介绍一种方式,能让Ardu ...

  2. 百度地图API开发指南

    简介什么是百度地图API? 百度地图API是一套由JavaScript语言编写的应用程序接口,它能够帮助您在网站中构建功能丰富.交互性强的地图应用.百度地图API包含了构建地图基本功能的各种接口,提供 ...

  3. Linux下停用和启用用户帐号

    有时候某个用户不乖,但是还不想删除他的帐号只是想给他点儿颜色看看,或者出于某种权限管理不想让他/她使用这个帐号,那么冻结帐号就是最好的方法了,linux中的帐号密码保存在/etc/shadow文件里面 ...

  4. YII 快速创建项目GII

    Yii 是一个基于组件.纯OOP的.用于开发大型 Web 应用的高性能PHP框架. 它将Web编程中的可重用性发挥到极致,能够显著加速开发进程 .Yii适合大流量的应用,如门户.BBS.CMS及B2B ...

  5. YII中的AR与DAO

    一.PDO PDO其实是PHP Database Objects的缩写,中文即PHP数据库对象.它提供了一种统一的PHP与数据库交互的方法. 优势:使得在一个单一的统一的接口可以访问不同的数据库管理系 ...

  6. Android无限级树状结构

    通过对ListView简单的扩展.再封装,即可实现无限层级的树控件TreeView. package cn.asiontang.nleveltreelistview; import android.a ...

  7. 比赛组队问题 --- 递归解法 --- java代码 --- 八皇后问题

    两队比赛,甲队为A.B.C3人,乙队为X.Y.Z3人.已知A不和X比,C不和X.Z比,请编程序找出3队赛手名单 采用了与八皇后问题相似的解法,代码如下: 如有疑问请链接八皇后问题的解法:http:// ...

  8. 使用c++11改写loki的TypeList

    最近看了C++11的一些特性,最感兴趣的是可变模板参数,自动类型推断和匿名函数. Loki中的TypeList,是需要递归定义的,并且需要一个NullType作为尾节点. 可变模板参数使得实现Type ...

  9. C#单元测试

    简单来说,单元测试就是局部测试,即是对项目中的某个静态类测试.静态方法测试.类的实例化测试以及类的方法测试.当您有一个具体的项目时您可以通过运行查看结果的方式进行测试,但当您只有一个类而没有完整的项目 ...

  10. 耳机jack构造及在应用时可能出现的问题

    目前市场上耳机分为4环耳机(图1所示,iphone型)和3环耳机(图2所示).4环耳机称为headset,3环耳机称为headphone,两者之间的区别就是4环耳机比3环耳机多个micphone.而J ...