次のような XML があります。
<library>
<album>
<!-- Album title, length, # of tracks, etc -->
<playas>
<extension>.mp3</extension>
<type>audio/mpeg</type>
</playas>
<playas>
<extension>.ogg</extension>
<type>audio/ogg</type>
</playas>
<track>
<!-- Track number, title, length -->
</track>
<!-- Many, many more tracks -->
</album>
</library>
また、私の XLS ファイルでは、xls:for-each
各トラックのsource
src 属性を決定するために使用したいと考えています。機能しないものは次のとおりです。
<xsl:for-each select="track">
<audio>
<!-- Parent (album)'s playas elements -->
<xsl:for-each select="../playas">
<source>
<xsl:attribute name="src">
<!-- Parent (album)'s title + '-src', where I store the audio files
along with current node (playas)'s extension -->
<xsl:value-of select="../title" />-src/<xsl:value-of select="title" /><xsl:value-of select="extension" />
</xsl:attribute>
<xsl:attribute name="type">
<xsl:value-of select="srctype" />
</xsl:attribute>
</source>
</xsl:for-each>
</audio>
</xsl:for-each>
上記のコードは<source src="AlbumTitle-src/.mp3" type="audio/mpeg"> (or .ogg and audio/ogg)
、現在track
の のタイトルが存在しないことを示しています。ただし、コードはトラックごとに正しく作成されているため、現在のトラックのタイトルを (playas のコンテキストから) 取得する方法を知る必要があります。
私も試してみましたがfor-each select="preceding-sibling::playas"
、運がありませんでした。playas
現在の を「離れる」ことなく、それぞれの子にアクセスするにはどうすればよいtrack
ですか?
編集:これは、各 playas 拡張機能をハードコーディングするだけで非常に簡単に実行できることはわかって<source>
いますが、最小限の実装で実行したいと考えています。
編集 2: @Peter: 各トラックの期待される出力 (同等の HTML) は
<audio>
<source src="AlbumTitle-src/track.mp3" type="audio/mpeg" />
<source src="AlbumTitle-src/track.ogg" type="audio/ogg" />
</audio>