<a id='a1' name='a1'/>
<b text='b1'/>
<d test='test0' location='L0' text='c0'/>
<a id='a2' name='a2'/>
<b text='b2'/>
<c test='test1' location='L1' text='c1'/>
<c test='test2' location='L2' text='c2'/>
<a id='a3' name='a3'>
<b text='b3'/>
<c test='test3' location='L3' text='c3'/>
<c test='test4' location='L4' text='c4'/>
<c test='test5' location='L5' text='c5'/>
これらの要素はすべて兄弟<c>
です。要素がないものもあります。そのような要素については何もしません。
これらには1つまたは2つ以上の要素があるため、要素ごとに1回だけ<c>
表示したいと思います。このようなテンプレートを適用しますが、機能しません。a/@name
<a>
<xsl:template match="a">
<xsl:choose>
<xsl:when test="following-sibling::c[1]">
<p>
<u>
<xsl:value-of select="(preceding-sibling::a[1])/@name"/>
</u>
</p>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
次のような出力が必要です。
a2:
location:L1
test:test1
text:c1
location:L2
test:test2
text:c2
a3:
location:L3
test:test3
text:c3
location:L4
test:test4
text:c4
location:L5
test:test5
text:c5