Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.118.0.240] |
|
Сообщ.
#1
,
|
|
|
первый раз имею дело с xslt. подскажите, почему выводит только первую гостиницу, а не все?
XML: <?xml version="1.0" encoding="utf-8"?> <WebProgList> <Category star="4"> <CDIndex ID="6221" Type="1" D1="20080801" D2="20090331" Name="Гостиница1"/> <CDIndex ID="6231" Type="1" D1="20080801" D2="20090331" Name="Гостиница2"/> </Category> </WebProgList> XSLT: <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <xsl:for-each select="WebProgList/Category"> <xsl:if test="//WebProgList/Category[@star=4]"> <xsl:value-of select="CDIndex/@Name"/> </xsl:if> </xsl:for-each> </xsl:template> </xsl:stylesheet> тут можно проверить http://www.w3schools.com/xsl/tryxslt...file=cdcatalog Добавлено сорри http://www.w3schools.com/xsl/tryxslt.asp?x...tfile=cdcatalog |
Сообщ.
#2
,
|
|
|
Вот правильный вариант
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <xsl:for-each select="WebProgList/Category[@star=4]/CDIndex"> <xsl:value-of select="@Name"/> </xsl:for-each> </xsl:template> </xsl:stylesheet> У тебя там несколько ошибок 1. Ты проходишь все категории а не все CDIndex(поэтому только одна запись) а пишешь название первого CDIndex 2. Условие, что 4 звезды на непраильном месте (По идее надо чтобы были отфильтрованны категории по этому признаку ), в добавок проверяещь все записи вместо текущей записи |