まず、ソース要素を複数回評価することは完全に可能です。ちょうど同じセレクターを使用してください。
たとえば、次のXMLを考慮:
<images>
<node id="a" image="foo.png" caption="foo" />
<node id="b" image="bar.png" caption="bar" />
</images>
このXSLTする最初のノードから繰り返し出力のもの:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="images">
<div id="images">
<img><xsl:value-of select="node[@id='a']/@image"/></img>
<img><xsl:value-of select="node[@id='a']/@caption"/></img>
<img><xsl:value-of select="node[@id='a']/@image"/></img>
<img><xsl:value-of select="node[@id='a']/@caption"/></img>
</div>
</xsl:template>
出力:
<div id="images">
<img>foo.png</img>
<img>foo</img>
<img>foo.png</img>
<img>foo</img>
</div>
、それがどのように見えるがあなたが本当に望むのは、画像とキャプションを含むノードの束をループすることです。
生成されます
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="images">
<div id="images">
<xsl:for-each select="node">
<img><xsl:value-of select="@image"/></img>
</xsl:for-each>
</div>
<div id="captions">
<xsl:for-each select="node">
<div><xsl:value-of select="@caption"/></div>
</xsl:for-each>
</div>
</xsl:template>
</xsl:stylesheet>
:
<div id="images">
<img>foo.png</img>
<img>bar.png</img>
</div>
<div id="captions">
<div>foo</div>
<div>bar</div>
</div>
が足りませんコンテキスト あなたは名前でノードを選択避けるためにため、各ループを使用することができます。 NODE AとNODE Bは何ですか?私はあなたが示したコードが望ましい出力であると仮定します。入力はどのように見えますか?あなたはすでにXSLTを持っています(SOは "私にはコードをつけてください"というサイトではありません)。 –