Re: Как перебрать все элементы в xsl не используя for-each?
От: ADVer  
Дата: 14.04.09 08:26
Оценка:
Здравствуйте, HammerSpb, Вы писали:

перебрать элементы в xml через xsl , но не используя for-each


Используйте <xsl:apply-templates select="..."/>


HS>Может кто знает, нужно перебрать элементы в xml через xsl , но не используя for-each


HS>Есть, например, такой xml

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


HS>Есть xsl c for-each

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