XML課後練習答案(七)——XSL文件編寫小測驗答案分享
題目:
已知學生的簡歷的XML文件內容如下:
<?xml version="1.0" encoding="gb2312"?>
<學生>
<個人基本資訊>
<照片>miffy.jpg</照片>
<姓名>米菲</姓名>
<性別>女</性別>
<民族>兔佳族</民族>
<出生地>大荷蘭</出生地>
<通訊地址>
<條目>130012</條目>
<條目>吉林省長春市前進大街2699號</條目>
<條目>吉林大學電腦科學與技術學院</條目>
</通訊地址>
<電子郵件>[email protected]</電子郵件>
</個人基本資訊>
<學歷和工作簡歷>
<條目>2003年畢業於吉林大學附屬小學</條目>>
<條目>2013年畢業於吉林大學計算機學院</條目>
<條目>2012.07至2012.09在吉林大學就業指導中心實習</條目
<條目>2006年畢業於吉林大學附屬中學初中部</條目>
<條目>2009年畢業於吉林大學附屬中學高中部</條目>
</學歷和工作簡歷>
<已修課程>
<條目>資料結構</條目>
<條目>資料庫原理</條目>
<條目>C語言程式設計</條目>
<條目>Java語言程式設計</條目>
<條目>Web應用開發基礎</條目>
<條目>XML語言</條目>
</已修課程>
<已獲獎勵>
<條目>2012獲中國大學生創新專案一等獎</條目>
<條目>2013獲中國大學生軟體競賽一等獎</條目>
</已獲獎勵>
<已發表論文>
<條目>人機對話中關鍵技術的探索,2011年發表於《機器與人》創刊號第1頁</條目>
<條目>米菲家族祖先追蹤,2012年發表於《物種起源》卷99999第8888頁</條目>
</已發表論文>
</學生>
miffy.jpg:
請給出將其轉換成HTML的XSLT程式碼,並給出轉換後在瀏覽器中的顯示結果的截圖。
要求轉換後在瀏覽器中的顯示結果如下:
1、答案:(這樣是不能直接拿去執行的哦,下面會說明應該怎麼執行XML結合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="/">
<html>
<body>
<h3 align = "center">米菲的簡歷</h3>
<table border="1" align = "center" cellpadding="10"><!--CCFFFF-->
<tr>
<td bgcolor="#ADD8E6" 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="#ADD8E6" align = "center">性別</td>
<td bgcolor="#E0FFFF"><xsl:value-of select="/學生/個人基本資訊/性別"/></td>
</tr>
<tr>
<td bgcolor="#ADD8E6" align = "center">民族</td>
<td bgcolor="#E0FFFF"><xsl:value-of select="/學生/個人基本資訊/民族"/></td>
</tr>
<tr>
<td bgcolor="#ADD8E6" align = "center">出生地</td>
<td bgcolor="#E0FFFF"><xsl:value-of select="/學生/個人基本資訊/出生地"/></td>
</tr>
<tr>
<td bgcolor="#ADD8E6" 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="#ADD8E6" align = "center">電郵</td>
<td bgcolor="#E0FFFF"><xsl:value-of select="/學生/個人基本資訊/電子郵件"/></td>
</tr>
<tr>
<td bgcolor="#ADD8E6" 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="#ADD8E6" 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="#ADD8E6" 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="#ADD8E6" 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>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
2、執行說明:
總體佈局是這樣的:有一個XML文件描述了頁面整體的元素和從屬關係,也就是題目給出的XML文件,還有一個XSL文件對應描述了XML文件中的元素怎麼佈局,有點像HTML和CSS的關係,但是XML文件並不是直接用題目中的就可以,要加上說明語句,說明自己是關聯了哪一個XSL文件,也就是加上下面第二個截圖的第二行語句href說明自己要關聯的XSL文件。