<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>
元素,我不会对这些元素做任何事情。
对于这些有一个或两个或多个<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