0
1つのXSLファイルを使用してHTMLに変換する2つのXMLファイルがあります。 elements.xml
には、これらのXMLファイルの値をIDで結合する部分があります。今私のHTMLファイルで、にリンクされているエフェクトの名前を一覧表示するために、<element>
をすべて別の<div>
として提示したいと思います。私は変数のいくつかの広範な使用があると仮定しますが、私はそれの周りに私の頭を得ることはできません。2つのXMLファイルの値をXSLTを使用してIDで結合する
例えば、最初の要素の出力は次のようになります
<div>
<div><p>NAME2</p></div>
<div><p>NAME1</p></div>
</div>
elements.xml
<elements>
<listOfElements>
<element>
<id>ID-element-1</id>
*some data*
</element>
<element>
<id>ID-element-2</id>
*some data*
</element>
(...)
</listOfElements>
<linkedIds>
<linkedId>
<idOfElement>ID-element-1</idOfElement>
<idOfEffect>ID-effect-2</idOfEffect>
<idOfEffect>ID-effect-1</idOfEffect>
<linkedId>
<linkedId>
<idOfElement>ID-element-2</idOfElement>
<idOfEffect>ID-effect-2</idOfEffect>
<idOfEffect>ID-effect-4</idOfEffect>
<idOfEffect>ID-effect-7</idOfEffect>
<linkedId>
(...)
</linkedIds>
</elements>
effects.xml
<effects>
<effect>
<idEffect>ID-effect-1</idEffect>
<name>NAME1</name>
</effect>
<effect>
<idEffect>ID-effect-2</idEffect>
<name>NAME2</name>
</effect>
<effect>
<idEffect>ID-effect-4</idEffect>
<name>NAME4</name>
</effect>
<effect>
<idEffect>ID-effect-7</idEffect>
<name>NAME7</name>
</effect>
</effect>
transform.xsl
<xsl:template match="elements">
<div>
<xsl:for-each select="elements/element">
<xsl:variable name="ElementID" select='linkedIds/linkedId/idOfElement'/>
<xsl:apply-templates select="document('effects.xml')/effects"/>
???
</xsl:for-each>
</div>
</xsl:template>
<xsl:template match="effects">
<xsl:for-each select="effects/effect">
<div>
<p><xsl:value-of select="name"/></p>
</div>
</xsl:for-each>
</xsl:template>
に変換されます。このように見えますか? http://pastebin.com/90wMQiMm – SuperM4n
@ SuperM4n、私は答えを編集し、2つのキーの使い方を示す完全なXSLT 1.0スタイルシートを提供しました。 –
どうもありがとうございました。どういう仕組みかとても分かりました。 – SuperM4n