Как перебрать все элементы в xsl не используя for-each?
От: HammerSpb Россия  
Дата: 13.04.09 10:38
Оценка:
Может кто знает, нужно перебрать элементы в xml через xsl , но не используя for-each

Есть, например, такой xml
<?xml version="1.0" encoding="WINDOWS-1251"?>
<?xml-stylesheet type='text/xsl' href='dogs.xsl'?>
<tutorial>
<enimals>
  <dogs>
    <dogsCaption>Собаки</dogsCaption>
    <dogsCaptionName>Порода</dogsCaptionName>
    <dogsCaptionWeight>Вес</dogsCaptionWeight>
    <dogsCaptionColor>Цвет</dogsCaptionColor>
    <dog>
      <dogName>Дог</dogName>
      <dogWeight caption="кг">35</dogWeight>
      <dogColor>серый</dogColor>
    </dog>
    <dog>
      <dogName>Овчарка</dogName>
      <dogWeight caption="кг">25</dogWeight>
      <dogColor>чёрная</dogColor>
    </dog>
    <dog>
      <dogName>Пудель</dogName>
      <dogWeight caption="кг">15</dogWeight>
      <dogColor>белый</dogColor>
    </dog>   
  </dogs>
</enimals>
</tutorial>


Есть xsl c for-each
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<table border="1">
  <tr bgcolor="#CCCCCC">
    <td align="center"><strong><xsl:value-of select="//dogsCaptionName"/></strong></td>
    <td align="center"><strong><xsl:value-of select="//dogsCaptionWeight"/></strong></td>
    <td align="center"><strong><xsl:value-of select="//dogsCaptionColor"/></strong></td>
  </tr>
  <xsl:for-each select="tutorial/enimals/dogs/dog">
  <tr bgcolor="#F5F5F5">
    <td><xsl:value-of select="dogName"/></td>
    <td align="right"><xsl:value-of select="dogWeight"/> <xsl:value-of select="dogWeight/@caption"/></td>
    <td><xsl:value-of select="dogColor"/></td>
  </tr>
  </xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.