XML作业6

练习06 编写XSL文档

 

已知学生的简历的XML文档内容如下:

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

<学生>

 

<个人基本信息>

 <照片>miffy.jpg</照片>

<姓名>米菲</姓名>

 <性别>女</性别>

 <民族>兔佳族</民族>

 <出生地>大荷兰</出生地>

 <通讯地址>

  <条目>130012</条目>

  <条目>吉林省长春市前进大街2699号</条目>

  <条目>吉林大学计算机科学与技术学院</条目>

 </通讯地址>

 <电子邮件>miffy@yahoo.com</电子邮件>

</个人基本信息>

 

<学历和工作简历>

 <条目>2003年毕业于吉林大学附属小学</条目>

 <条目>2006年毕业于吉林大学附属中学初中部</条目>

 <条目>2009年毕业于吉林大学附属中学高中部</条目>

 <条目>2013年毕业于吉林大学计算机学院</条目>

 <条目>2012.07至2012.09在吉林大学就业指导中心实习</条目>

</学历和工作简历>

 

<已修课程>

 <条目>数据结构</条目>

 <条目>数据库原理</条目>

 <条目>C语言程序设计</条目>

 <条目>Java语言程序设计</条目>

 <条目>Web应用开发基础</条目>

 <条目>XML语言</条目>

</已修课程>

 

<已获奖励>

 <条目>2012获中国大学生创新项目一等奖</条目>

 <条目>2013获中国大学生软件竞赛一等奖</条目>

</已获奖励>

 

<已发表论文>

 <条目>人机对话中关键技术的探索,2011年发表于《机器与人》创刊号第1页</条目>

 <条目>米菲家族祖先追踪,2012年发表于《物种起源》卷99999第8888页</条目>

</已发表论文>

</学生>

 

miffy.jpg:

 

请给出将其转换成HTML的XSLT代码,并给出转换后在浏览器中的显示结果的截屏。

要求转换后在浏览器中的显示结果如下:

 

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <html>
            <body>
                <font face="STXinwei">
                <h3 align = "center">米菲的简历</h3>
                <table border="1" align = "center" cellpadding="10"><!--CCFFFF-->
                <tr>
                    <td bgcolor="#5F9EA0" width = "70" align = "center">姓名</td>
            <td bgcolor="#E0FFFF" width = "300"><xsl:value-of select="/学生/个人基本信息/姓名"/></td>
            <td rowspan="6">
                        <img>
                            <xsl:attribute name="src"><xsl:value-of select="/学生/个人基本信息/照片"/></xsl:attribute>
                        </img>
                    </td>
                </tr>
                <tr>
                    <td bgcolor="#5F9EA0" align = "center">性别</td>
                    <td bgcolor="#E0FFFF"><xsl:value-of select="/学生/个人基本信息/性别"/></td>
                </tr>
                <tr>
                    <td bgcolor="#5F9EA0" align = "center">民族</td>
                    <td bgcolor="#E0FFFF"><xsl:value-of select="/学生/个人基本信息/民族"/></td>
                </tr>
                <tr>
                    <td bgcolor="#5F9EA0" align = "center">出生地</td>
                    <td bgcolor="#E0FFFF"><xsl:value-of select="/学生/个人基本信息/出生地"/></td>
                </tr>
                <tr>
                    <td bgcolor="#5F9EA0" align = "center">通讯地址</td>
                    <td bgcolor="#E0FFFF">
                        <xsl:for-each select="/学生/个人基本信息/通讯地址/条目">
                            <ul>
                                <li><xsl:value-of select="."/></li>
                            </ul>
                        </xsl:for-each>
                    </td>
                </tr>
                <tr>
                    <td bgcolor="#5F9EA0" align = "center">电邮</td>
                    <td bgcolor="#E0FFFF"><xsl:value-of select="/学生/个人基本信息/电子邮件"/></td>
                </tr>
                <tr>
                    <td bgcolor="#5F9EA0" align = "center" colspan = "3">学历和工作简历</td>
                </tr>
                <tr>
                    <td bgcolor="#E0FFFF" colspan = "3">
                        <xsl:for-each select="/学生/学历和工作简历/条目">
                            <ul>
                                <li><xsl:value-of select="."/></li>
                            </ul>
                        </xsl:for-each>
                    </td>
                </tr>
                <tr>
                    <td bgcolor="#5F9EA0" align = "center" colspan = "3">已修课程</td>
                </tr>
                <tr>
                    <td bgcolor="#E0FFFF" colspan = "3">
                        <xsl:for-each select="/学生/已修课程/条目">
                            <ul>
                                <li><xsl:value-of select="."/></li>
                            </ul>
                        </xsl:for-each>
                    </td>
                </tr>
                <tr>
                    <td bgcolor="#5F9EA0" align = "center" colspan = "3">已获奖励</td>
                </tr>
                <tr>
                    <td bgcolor="#E0FFFF" colspan = "3">
                        <xsl:for-each select="/学生/已获奖励/条目">
                            <ol>
                                <li><xsl:value-of select="."/></li>
                            </ol>
                        </xsl:for-each>
                    </td>
                </tr>
                <tr>
                    <td bgcolor="#5F9EA0" align = "center" colspan = "3">已发表论文</td>
                </tr>
                <tr>
                    <td bgcolor="#E0FFFF" colspan = "3">
                        <xsl:for-each select="/学生/已发表论文/条目">
                            <ol>
                                <li><xsl:value-of select="."/></li>
                            </ol>
                        </xsl:for-each>
                    </td>
                </tr>
                </table>>
                </font>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>

 

某学校拟使用XML文件制定一个学生(含已毕业学生)信息文档,该文档描述其学校内学生的管理信息。 1、 选用合适的编辑器,编写一个XML文件,应至少包括下述信息内容: 学生目录下应该包括: (1) 所有学生的共有信息:班级的名字、专业、类别等 (2) 学生 学生1 学生基本信息(学生姓名、性别、学号、年龄) 入学信息(入学时间、辅导员名) 班级内学生生源信息( 生源1:(生源地名称、联系方式等信息) 生源2: 生源n: ) 毕业信息(毕业时间、毕业数量、辅导员名) 学生2 学生3 。。。。。 学生N (3)辅导员 辅导员1(辅导员姓名、联系方式、职位、管理的班级名) 辅导员2 2、针对该XML文件,画出其相应的树状结构图。 3、针对所编写的XML文件,编写其相应的DTD文件,并使用解析器验证其有效性,对验证结果抓图。 4、针对所编写的XML文件,编写合适的XSL文件,将学生基本信息打印成表格,并用ie浏览器进行浏览并截图。 5、使用JAVA编程语言,对XML文件进行解析: 显示该xml文件的所有节点、属性的名字; 同时显示该xml文件所有标记的文本数据; 计算学生的入学平均年龄并进行输出。 要求:1)xml文件中应该包括文本内容、标记、属性、命名空间,混合标记等的内容 2)dtd文件应该有相应的结果抓图 3)xsl文件应用到规范中的常用技巧,例如模板调用、for-each、value-of、xsl标记等。 4)解析器结果应该有抓图。 5)形成的代码交老师验证。
题目重述 1. 在XMLWriter中编写`person.xml`文件,要求包含五个人(Person)的信息,每人信息包括:性别(作为属性)、姓名、年龄、地址(含省市和邮编)、电话号码、e-mail地址。 2. 使用XMLWriter对`person.xml`进行良构性验证,若有错误需根据提示修改。 详解 要完成本题,首先需构造一个结构良好(well-formed)的XML文档。XML文档必须有唯一根元素,元素正确嵌套,属性使用引号包围,且所有标签闭合。 设计根元素为`<persons>`,每个人员信息用`<person>`表示,`gender`作为其属性。每个`<person>`包含以下子元素:`<name>`、`<age>`、`<address>`(内含`<province>`、`<city>`、`<zip>`)、`<phone>`、`<email>`。 给出答案(答案为带注释的代码块) ```xml <?xml version="1.0" encoding="UTF-8"?> <!-- 根元素persons包含五个person条目 --> <persons> <!-- 第一个人 --> <person gender="男"> <name>张三</name> <age>25</age> <address> <province>广东</province> <city>广州</city> <zip>510000</zip> </address> <phone>13812345678</phone> <email>zhangsan@email.com</email> </person> <!-- 第二个人 --> <person gender="女"> <name>李四</name> <age>30</age> <address> <province>江苏</province> <city>南京</city> <zip>210000</zip> </address> <phone>13912345678</phone> <email>lisi@email.com</email> </person> <!-- 第三个人 --> <person gender="男"> <name>王五</name> <age>22</age> <address> <province>浙江</province> <city>杭州</city> <zip>310000</zip> </address> <phone>13712345678</phone> <email>wangwu@email.com</email> </person> <!-- 第四个人 --> <person gender="女"> <name>赵六</name> <age>28</age> <address> <province>四川</province> <city>成都</city> <zip>610000</zip> </address> <phone>13612345678</phone> <email>zhaoliu@email.com</email> </person> <!-- 第五个人 --> <person gender="男"> <name>孙七</name> <age>35</age> <address> <province>北京</province> <city>北京</city> <zip>100000</zip> </address> <phone>13512345678</phone> <email>sunqi@email.com</email> </person> </persons> ``` 代码解析 - `<?xml version="1.0" encoding="UTF-8"?>`:声明XML版本和编码。 - 根元素`<persons>`包裹所有`<person>`元素,确保文档结构完整。 - 每个`<person>`以`gender`属性记录性别,体现属性用法。 - `<address>`包含三个子元素,展示层级结构。 - 所有标签均正确闭合,字符串值无需额外转义(无特殊字符如`<`或`&`)。 - 使用双引号包围属性值,符合XML规范。 知识点(列出解答该问题需要的知识点) 1. **XML基本语法规则**:标签必须闭合、区分大小写、属性值需引号包围,保证文档良构性。 2. **XML元素与属性设计**:合理分配数据为元素或属性,如性别作为属性,复杂信息作为子元素。 3. **XML文档结构**:必须有且仅有一个根元素,所有数据在其下组织,形成树形结构。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值