XSLTをいじり始めましたが、いくつか問題があります。一連の価値のある選択命令を使用してXMLドキュメントを出力することができましたが、XSLTテンプレートを自分で作成することに関しては本当に苦労しています。
これが私のXMLです:
<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="lecturers.xsl"?>
<lecturers>
<lecturer>
<name>
<title>Professor</title>
<first>Peter </first> <last>Quirk</last>
</name>
<teaching>
<course code="CO3070">XML and the Web</course>
<course code="CO3300"> Web Server Architectures</course>
</teaching>
<research>
The application of Web protocols to Biology
</research>
</lecturer>
<lecturer>
<name>
<title>Doctor</title>
<first>Brian </first> <last>Johnson</last>
</name>
<teaching>
<course code="CO9999">Computer Hacking</course>
<course code="CO3300"> Web Server Architectures</course>
</teaching>
<research>
Investigating the various complexities of Computer Hacking
</research>
</lecturer>
次に、これが現在の私のXSLです。
<?xml version="1.0"?>
<xsl:stylesheet version='1.0' xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="4.0" />
<xsl:template match="/">
<html>
<head>
<title>XML Week 7</title>
</head>
<body>
<h1>Week 7: Lecturers file turned to XSL:Template</h1>
<table border="1">
<tr>
<th><b>Title</b></th>
<th><b>Name</b></th>
<th><b>Teaching</b></th>
<th><b>Research</b></th>
</tr>
<tr>
<td><xsl:value-of select="lecturers/lecturer/name/title" /></td>
<td><xsl:value-of select="lecturers/lecturer/name/first" /><xsl:text> </xsl:text><xsl:value-of select="lecturers/lecturer/name/last" /></td>
<td><xsl:value-of select="lecturers/lecturer/teaching/course" /> and <xsl:value-of select="(lecturers/lecturer/teaching/course)[2]" /></td>
<td><xsl:value-of select="lecturers/lecturer/research" /></td>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
これにより、必要な情報がテーブルに出力されますが、講師要素を保持する新しいテンプレートを作成し、次にその要素のコースの子を作成するように指示されました。頭の中で物事を複雑にしすぎているかもしれませんが、テンプレートをtdのいずれかに適用しようとすると、ブラウザで解析エラーが発生するため、機能させることができません。だから、誰かが私のためのヒントを持っていますか?私の例でそれを機能させる方法を説明するいくつかの基本的な例でさえ素晴らしいでしょう。みんな乾杯。