映画と俳優を格納する次の XML ファイルがあります。
<database
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="movies.xsd">
<movies>
<movie movieID="1">
<title>Movie 1</title>
<actors>
<actor actorID="1"></actor>
<actor actorID="2"></actor>
</actors>
</movie>
</movies>
<actors>
<actor actorID="1">
<name>Bob</name>
</actor>
<actor actorID="2">
<name>Mike</name>
</actor>
</actors>
</database>
私はactorID fromdatabase/movies/movie/actors/actor
をactorID fromに接続し、database/actors/actor
アクターの名前を表示したいと考えています:
これは私のXSLTです:
<xsl:variable name="selectActors" select="database/actors/actor[@actorID]"/>
<xsl:variable name="inputRoot" select="/"/>
<xsl:template match="/">
<xsl:apply-templates select="database/movies/movie"/>
</xsl:template>
<xsl:template match="movie">
Title:
<xsl:value-of select="title"/>
<br/>
Actors:
<xsl:for-each select="actors/actor[@actorID=$selectActors]">
<xsl:value-of select="$inputRoot/database/actors/actor/name"/>
<br/>
</xsl:for-each>
<br/>
</xsl:template>
これは、表示したい最終結果です。
Title: Movie 1
Actors: Bob
Mike
自分のページに表示するアクター名を取得できません。私は一般的に XSLT に非常に慣れていないため、actorID を正しく相互リンクしたかどうかはわかりません。