• xml和xsl配合使用实例


    找到一个实际应用的例子,是英语统考打印准考证的实例,关于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>photoeb214718-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;100%;margin:5px 0px 0px 0px">
                                <p>
                                <xsl:text >试点高校网络教育部分公共基础课统一考试</xsl:text>
                                <br/>                    
                                <xsl:text>准  考  证</xsl:text>
                                </p>
                            </div>    
                            <!--学生基本信息-->            
                            <div style="100%;margin:10px 0px 0px 0px">
                                <table border="1" cellpadding="2" cellspacing="0" style="font-size:10pt;100%;border-collapse:collapse">
                                    <tr>
                                        <td style="text-align:center;font-weight:bold;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;100%;margin:10px 0px 0px 0px">
                                <xsl:text >考试安排</xsl:text>
                                <table border ="1" cellspacing="0" cellpadding="2" style="font-size:10pt;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;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>photoeb214718-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文件的用法的说明。

  • 相关阅读:
    【Winform】Webservice调用服务器端EXE
    LeetCode: Word Ladder II
    LeetCode: Maximal Rectangle
    Algorithm: 拓扑排序
    Algorithm: 匈牙利算法
    LeetCode: Scramble String
    LeetCode: Integer to Roman
    LeetCode: Roman to Integer
    算法导论:基础知识。
    C++主函数main()讲解
  • 原文地址:https://www.cnblogs.com/mq0036/p/3975784.html
Copyright © 2020-2023  润新知